Come assegnare una serie di valori alle righe selezionate senza utilizzare un ciclo for?Ciao a tutti
Ho usato get rows where() per ottenere una serie di righe e voglio assegnare i valori nelle righe sotto la colonna b alle stesse righe sotto un'altra colonna, come sotto
righe = dt << ottieni righe dove (colonna ("b")[ ] == "xxx");
colonna ("a")[righe] = colonna ("b") [righe];
Ma non funziona, voglio sapere se c'è un modo per assegnare una serie di valori alle righe selezionate senza usare un ciclo for?
GrazieScriptingRe: Come assegnare una serie di valori alle righe selezionate senza utilizzare un ciclo for?Ecco un esempio che mostra un modo per risolvere il tuo problema
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: Come assegnare una serie di valori alle righe selezionate senza utilizzare un ciclo for?Grazie per la tua risposta.
Ma invece di assegnare "un certo valore", voglio assegnare "una serie di valori" alle righe corrispondenti senza un ciclo for.Re: Come assegnare una serie di valori alle righe selezionate senza utilizzare un ciclo for?Altri potrebbero avere un modo più efficiente per farlo, ma ecco la mia soluzione
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>