Funktion mit mehreren Spalten zusammenfassenAlle,
Ich versuche, ein Skript zu schreiben, das die Anzahl der Beobachtungen ermittelt, möglicherweise für eine oder mehrere Spalten (wie durch Eingaben des Benutzers bestimmt). Ich kann das Skript für eine Spalte zum Laufen bringen, aber nicht für zwei oder mehr. Wie passe ich den Code im Schritt für Schritt der Zusammenfassungsfunktion an, um 1+ Spalten zu verarbeiten?
Nachfolgend finden Sie ein Beispielskript:
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
Danke!
Sarah
Betreff: Funktion mit mehreren Spalten zusammenfassenEntschuldigung für die Verwirrung bezüglich der Variable varname. Sie haben es richtig verstanden – es handelt sich um eine Liste von Spaltennamen, die von der Eingabe des Benutzers über eine GUI abhängen (das ist die varList – ein Spaltenlistenfeld). Und Sie haben mein Problem gelöst. Ich liebe es, wenn es eine einfache Lösung ist.
Für mein zukünftiges Wissen: Wenn ich in einer Funktion in JSL auf Datentabellenspaltennamen verweisen möchte, sollten die Dinge mit dem Befehl eval() gut funktionieren? Ich scheine damit immer Probleme zu haben – insbesondere beim Codieren von Diagrammen.
Vielen Dank!
Sarah
Betreff: Funktion mit mehreren Spalten zusammenfassenIhr Beitrag enthält nicht genügend Informationen, um sicherzustellen, dass ich weiß, wo das Problem liegt. Es wäre hilfreich zu wissen, was VarList ist und was das Ergebnis der <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
Wenn ja, müssen Sie in der Summarize()-Funktion „use Eval()“ um „varname“ setzen, etwa so:
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>