Comment insérer plusieurs données sans nom de colonne ?Ci-dessous, JSL pour créer une table JMP.
dt = New Table( "Exemple d'étage",
Nouvelle colonne( "ID d'unité", Caractère, Nominal ),
Nouvelle colonne( "Données1", Numérique, Continu, Format( "Meilleur", 12 ) ),
Nouvelle colonne( "Données2", Numérique, Continu, Format( "Meilleur", 12 ) ),
Nouvelle colonne( "Données3", Numérique, Continu, Format( "Meilleur", 12 ) ),
);
dtdata={
{ID d'unité = "A", Donnée1 = 1.1, Donnée2 = 2.1, Donnée3 = 3.1},
{ID d'unité = "B", Données1 = 1,2, Données2 = 2,2, Données3 = 3,2},
{ID d'unité = "C", Données1 = 1,3, Données2 = 2,3, Données3 = 3,3}
} ;
dt << Ajouter des lignes( dtdata );
J'aimerais insérer plusieurs données sans définir le nom de la colonne comme suit.
dtdata={
{"A", 1.1, 2.1, 3.1},
{"B", 1.2, 2.2, 3.2},
{"C", 1.3, 2.3, 3.3}
} ;
Ci-dessus n'est pas la bonne réponse. S'il vous plaît laissez-moi savoir la bonne syntaxe JSL.
Re : Comment insérer plusieurs données sans nom de colonne ?Cette situation est décrite dans la documentation. Voir Aide > Livres > Guide de script. Il y a une section sur les différentes façons d'ajouter des lignes à la table de données. Il existe de nombreux exemples tout au long du guide. Voici l'extrait :
Ajouter des lignes
Pour ajouter des lignes, envoyez un message Ajouter des lignes et spécifiez le nombre de lignes. Vous pouvez également spécifier après quelle ligne insérer les nouvelles lignes. Les arguments peuvent être des nombres ou des expressions qui s'évaluent en nombres.
dt << Add Rows( 3 ); // add 3 rows to bottom of data table
dt << Add Rows( 3, 10 ); /* add 3 rows after the 10th row, moving the 11th and lower rows farther down */
Une variante de Add Rows vous permet de spécifier un argument produisant une liste d'affectations.
Les affectations peuvent être séparées par des virgules ou des points-virgules.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter", :age = 14, :sex = "M", :height = 61, :weight = 124}
);
ou
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter"; :age = 14; :sex = "M"; :height = 61; :weight = 124}
);
Vous pouvez envoyer plusieurs arguments produisant des listes, ou même une liste de listes. Le script suivant
crée une table de données avec les commandes Ajouter des lignes de chaque variété :
dt = New Table( "Cities" );
dt << New Column( "xx", Numeric );
dt << New Column( "cc", Character, width( 12 ) );
dt << Add Rows( {xx = 12, cc = "Chicago"} ); // single list
dt << Add Rows( {xx = 13, cc = "New York"}, {xx = 14, cc = "Newark"} );
// several lists
dt << Add Rows(
{{xx = 15, cc = "San Francisco"}, {xx = Sqrt( 256 ), cc = "Oakland"}}
); // list of lists
a = {xx = 20, cc = "Miami"};
dt << Add Rows( a ); // evaluate as single list
b={{xx = 17, cc = "San Antonio"},{xx = 18, cc = "Houston"}, {xx = 19, cc =
"Dallas"}};
dt << Add Rows( b ); // evaluate as list of lists
Re : Comment insérer plusieurs données sans nom de colonne ?Voici quelques options qui fonctionnent avec JMP 13 et versions ultérieures.
dt = New Table( "Floor Example",
New Column( "Unit ID", Character, Nominal ),
New Column( "Data1", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data2", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data3", Numeric, Continuous, Format( "Best", 12 ) ),
);
dt << add rows(nitems(dtdata));
dtdata={
{"A", 1.1, 2.1, 3.1},
{"B", 1.2, 2.2, 3.2},
{"C", 1.3, 2.3, 3.3}
};
For Each Row(dt, dt[row(),1::ncol(dt)]=dtdata[row()]);
//or create a function to append
addrows = function({listofrows, ctbl=current data table()}, {nr,nc, i},
nr = nrow(ctbl);
nc = ncol(ctbl);
for(i=1, i <= nitems(listofrows), i++,
ctbl << add rows(1);
ctbl[nr+i, 1::nc] = listofrows[i]
);
); //end function
//add the rows again to demo this function
addrows(dtdata);