Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Hallo zusammen
Ich habe get rows where() verwendet, um eine Reihe von Zeilen abzurufen, und möchte die Werte in den Zeilen unter Spalte b denselben Zeilen unter einer anderen Spalte zuweisen, wie unten
rows = dt << get rows where (column("b")[ ] == "xxx");<BR />column ("a")[rows] = column ("b") [rows];
Aber es funktioniert nicht. Ich möchte wissen, ob es eine Möglichkeit gibt, ausgewählten Zeilen eine Reihe von Werten zuzuweisen, ohne eine for-Schleife zu verwenden?
Danke
VersuchsplanungBetreff: Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Das ist ein guter Hinweis.
Vielen Dank!Betreff: Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Abonnieren der Datentabelle könnte das sein, wonach Sie suchen. Sie können wahrscheinlich etwas wie dt[rows,{a}] = dt[rows,{b}]; Dabei ist rows eine Matrix mit den Zeilenindizes und {a} und {b} Listen von Spalten. Sie benötigen außerdem den expliziten dt, der von open() zurückgegeben wird, wenn Sie die Tabelle öffnen, oder von anderen Funktionen wie subset() usw., die neue Tabellen erstellen.
Betreff: Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Andere haben vielleicht eine effizientere Möglichkeit, dies zu tun, aber hier ist meine Lösung
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>Betreff: Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Danke für deine Antwort.
Aber anstatt „einen bestimmten Wert“ zuzuweisen, möchte ich den entsprechenden Zeilen „eine Reihe von Werten“ ohne for-Schleife zuweisen.Betreff: Wie kann ich ausgewählten Zeilen eine Reihe von Werten zuweisen, ohne eine for-Schleife zu verwenden?Hier ist ein Beispiel, das eine Möglichkeit zur Lösung Ihres Problems zeigt
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>