Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?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 sous la colonne b aux mêmes lignes sous une autre colonne, comme ci-dessous
rows = dt << get rows where (column("b")[ ] == "xxx");<BR />column ("a")[rows] = column ("b") [rows];
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?
Merci
ScriptRe : Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?C'est un bon indice.
Merci beaucoup!Re : Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?Abonnement aux tables de données peut être ce que vous cherchez. Vous pouvez probablement utiliser quelque chose comme dt[rows,{a}] = dt[rows,{b}] ; où rows est une matrice avec les index de ligne et {a} et {b} sont des listes de colonnes. Vous aurez également besoin du dt explicite qui est renvoyé par open() lorsque vous ouvrez la table, ou par d'autres fonctions comme subset(), etc. qui créent de nouvelles tables.
Re : Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?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>Re : Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?Merci pour votre réponse.
Mais au lieu d'attribuer "une certaine valeur", je veux attribuer "une série de valeurs" aux lignes correspondantes sans boucle for.Re : Comment attribuer une série de valeurs aux lignes sélectionnées sans utiliser de boucle ?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>