Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle for?Salut tout le monde
J'ai utilisé get rows where() pour obtenir une série de lignes et je souhaite affecter les valeurs des lignes de la colonne b aux mêmes lignes d'une autre colonne, comme ci-dessous
rows = dt << obtenir des lignes où (column("b")[ ] == "xxx");
colonne ("a")[lignes] = colonne ("b") [lignes] ;
Mais cela ne fonctionne pas, je veux savoir s'il existe un moyen d'attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle for?
MerciScriptRe: Comment affecter une série de valeurs aux lignes sélectionnées sans utiliser de boucle for?Voici un exemple qui montre une façon de résoudre votre problème
names default to here(1);
dt=open("$sample_data/big class.jmp");
// Create a new table with the same number of rows and a new
// character column called Gender
dtNew = New Table("New Table", add rows(nrows(dt)),
New Column("Gender",character)
);
// Assign to all rows in big class that are females, the value
// of "Female" to the same rows in New Table
dtNew:Gender[dt<<GET rows="" where=""></GET>Re: Comment affecter une série de valeurs aux lignes sélectionnées sans utiliser de boucle for?Merci pour votre réponse.
Mais au lieu d'affecter "une certaine valeur", je souhaite affecter "une série de valeurs" aux lignes correspondantes sans boucle for.Re: Comment affecter une série de valeurs aux lignes sélectionnées sans utiliser de boucle for?D'autres peuvent avoir un moyen plus efficace de le faire, mais voici ma solution
names default to here(1);
dt=open("$sample_data/big class.jmp");
// Create a new table with the same number of rows and a new
// character column called Gender
dtNew = New Table("New Table", add rows(nrows(dt)),
New Column("Gender",character)
);
// Assign to all rows in big class that are females, the value
// of "Female" to the same rows in New Table
values = dt:sex << get values;
dtNew:Gender << set values(values);
dtNew:Gender[dt<<GET rows="" where=""></GET>