C'è un modo più efficiente per farlo in JSL che in un ciclo?Dopo aver selezionato jm per la colonna dell'età, aggiungi una nuova colonna, scopri l'età delle righe adiacenti verso l'alto e verso il basso, l'età non viene restituita allo stesso tempo. 1. Cerco di pedalare e mi sento lento. Chiedi metodi migliori. Grazie tu molto!
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
Nuova colonna ("nuova", numerica, continua, larghezza (8));
dt [1, "età"] = 1;
per (i = 1, i <= numero Col (1), i ++,
if (dt [i, "età"] == dt [i-1, "età"], dt [I, "nuovo"] = 0, dt [I, "nuovo"] = 1);
);

Ri: C'è un modo più efficiente per farlo in JSL che in un ciclo?Grazie mille! Ho intenzione di utilizzare il confronto di esempio più tardi.Ri: C'è un modo più efficiente per farlo in JSL che in un ciclo?Nota, lo script che hai incollato non corrisponde allo script nella schermata.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Sort( By( :age ), Order( Ascending ), Replace Table );
dt << New Column("new",Numeric,Continuous,Width(8));
t0 = hptime();
dt[1,"new"]=1;
for(i=2,i<=Col Number(1),i++,
if(dt[i,"age"]==dt[i-1,"age"],dt[i,"new"]=0,dt[i,"new"]=1);
);
t1 = hptime();
dt << New Column("new2",Numeric,Continuous,Width(8));
t2 = hptime();
column(dt, "new2") << set each value(
If(row() == 1, 1,
:age == Lag(:age,1), 0,
//else
1)
);
t3 = hptime();
show(t3-t2, t1-t0); <BR /><BR />//The results will be different each time, but the second method takes less than 50% of the time <BR />//compared to the for loop.<BR />//t3 - t2 = 257; t1 - t0 = 679;<BR /><BR /><BR />