Ich habe gerade angefangen, JSL mit JMP16 zu lernen
Beim Versuch, ein Skript zu schreiben, um eine Teilmengendatentabelle mit ausgewählten Zeilen zu erstellen, werden die Auswahlkriterien durch numerische Werte in Spalte (7) definiert.
Das Rückgrat des folgenden Skripts stammt von "subset", das unter der Registerkarte "Tables" ausgeführt wird.
Data Table( "Subset of 200 kinome all excel" ) <<
Subset(
Linked,
selected rows only(0),
row selection (select where (as column(7) >0.3) );
Selected columns only(0),
);
Die Auswahl des obigen Skripts hat nicht funktioniert. Die Subset-Tabelle ist identisch mit der ursprünglichen.
Was habe ich verpasst?
Danke
Sie haben ein paar kleine Probleme.
- Das Selected Rows Only() muss eingeschaltet sein
selected rows only( 1 ),
- Die ";" Am Ende Ihrer Zeilenauswahl wurde die Teilmenge beendet.Es musste ein "," sein
row selection( select where( As Column( 7 ) > 0.3 ) ),
Hier ist der vollständige Code
Data Table( "Subset of 200 kinome all excel" ) << Subset(
Linked,
selected rows only( 1 ),
row selection( select where( As Column( 7 ) > 0.3 ) ),
Selected columns only( 0 ),
);
Ich würde diesen Ansatz überhaupt nicht verwenden und er funktioniert auf meinem Computer nicht (immer noch alle Zeilen in Teilmenge und kein Fehler/keine Meldung ausgegeben):
Names default to here(1);
dt=open("$SAMPLE_DATA\Big Class.jmp");
Data Table( dt ) << Subset(
Linked,
selected rows only( 1 ),
row selection( select where( As Column( 2 ) > 13 ) ),
Selected columns only( 0 ),
);
Der Grund ist, dass ich in der Dokumentation von "subset" keine Option wie "row selection" finden konnte, es gibt nur
, [number, number, ...])>,
sehen: Untermenge einer Datentabelle (jmp.com)
Und die Gefahr besteht darin, dass unbekannte Parameter keinen Fehler werfen, so schwer zu debuggen.
Außerdem wäre ich beim Auswählen von Zeilen innerhalb dieser Teilmengenanweisung nicht wirklich sicher, ob die Auswahl vor der Teilmenge erfolgt, sodass es für mich nicht stabil aussieht.
Meine Lösung wäre, entweder die Zeilen vor der Teilmengenanweisung auszuwählen oder wie unten durch explizite Auswahl der Zeilennummern.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Data Table( dt ) << Subset(
Linked,
rows( /* explicit rows [1,2,3] or conditionally: */ Loc( (dt:age << get values) > 16 ) ),
Selected columns only( 0 ),
);