Funzione di riepilogo con colonne multiple perTutto,
Sto cercando di scrivere uno script che ottenga un conteggio delle osservazioni, potenzialmente da 1 o più colonne (come determinato dall'input dell'utente). Posso far funzionare lo script per una colonna, ma non per due o più. Come posso regolare il codice nel passaggio della funzione di riepilogo per gestire 1+ colonne?
Di seguito è riportato un esempio di script:
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
Grazie!
Sara
Ri: Funzione di riepilogo con colonne multiple perCi scusiamo per la confusione sulla variabile varname. Hai capito bene: è un elenco di nomi di colonne che dipendono dall'input dell'utente da una GUI (questa è la varList - una casella di riepilogo delle colonne). E hai risolto il mio problema. Lo adoro quando è una soluzione semplice.
Per mia conoscenza futura quindi, ogni volta che voglio fare riferimento ai nomi delle colonne della tabella dati in una funzione in JSL, le cose dovrebbero funzionare bene con il comando eval() attorno ad esso? Mi sembra sempre di avere problemi con questo, specialmente durante la codifica dei grafici.
Grazie mille!
Sara
Ri: Funzione di riepilogo con colonne multiple perNon ci sono abbastanza informazioni nel tuo post per essere sicuro di sapere qual è il problema. Sarebbe utile sapere cos'è VarList e qual è il risultato del messaggio <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
In tal caso, è necessario inserire use Eval() attorno a varname nella funzione Summarize(), in questo modo:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>