Zeilen auswählen und darauf aufbauend weiter auswählenIch habe eine Datentabelle, in der ich Zeilen basierend auf dem Ergebnis einer Spalte auswählen kann.Ich möchte diese Auswahl dann basierend auf einem Wert erweitern, der in den zuvor ausgewählten Zeilen enthalten ist.
Ich habe es versucht
dt = Current Data Table();
dr << select where( :ctrlrange > 0.23 );
h = Column( dt, "reagentkit_id" ) << get Values;
dt << select where( :reagentkit_id == h );
Das schien nicht zu funktionieren, da JMP einfror.
Die Datentabelle könnte viele Zeilen haben.
Der Grund, warum ich dies tun möchte, ist, dass der Regelbereich zu bestimmten Zeiten höher als 0,23 ist und ich alle Daten vom Reagenz möchte (wobei der Regelbereich möglicherweise nicht höher als 0,23 war).
SkripterstellungBetreff: Zeilen auswählen und darauf aufbauend weiter auswählenIhre ursprüngliche Prämisse funktioniert nicht so, wie Sie denken.<
Hier ist ein Beispiel, das mit einem Auswahlkriterium funktioniert, das ziemlich effizient sein sollte.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << select where(:weight <100);
dt << hide and exclude;
dt_rgt = dt << Summary(
Group( :name ),
Freq( "None" ),
Weight( "None" ),
link to original data table(1)
);
dt_rgt << delete rows;
dt << clear rowstates;
dt_rgt << select all rows;
close( dt_rgt, nosave);Betreff: Zeilen auswählen und darauf aufbauend weiter auswählendt = Current Data Table();
dt << select where( :ctrlrange > 0.23 );
dt << Subset( Output Table( "Sel" ), Selected Rows( 1 ), selected Columns( 0 ) );
dt_rgt = dt << Summary(
Group( :reagentkit_id ),
N Catagories( :reagentkit_id ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 1 )
);
//h = Column( Sel, "reagentkit_id" ) << get Values;
dt_rgt << select where( Contains( Sel, :reagentkit_id ) );
Ich bin mir nicht sicher, wie ich angeben soll, dass es auswählen soll, wo in der Sel-Tabelle nach den in der dt_rgt-Tabelle auszuwählenden Werten gesucht wird.
Irgendwelche Ideen??
Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenSollte ich die Linien mit dem ctrlrange größer als 0.23 vorwählen. Dann in eine andere Tabelle unterteilen und dann diese Tabelle verwenden, um die Reagenzkit_id aus der ursprünglichen Tabelle auszuwählen?Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenGute Idee.
Ich habe das versucht
dt = Current Data Table();
dt << select where( :ctrlrange > 0.23 );
h = Column( dt, "reagentkit_id" ) << get Values;
dt_rgt = dt << Summary(
Group( :reagentkit_id ),
N Catagories( :reagentkit_id ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 1 )
);
dt_rgt << select where( Contains( h, :reagentkit_id ) );
Es erstellte eine zusammenfassende Tabelle, die verknüpft wurde. Aber es hat alle Zeilen in der ursprünglichen Datentabelle ausgewählt. Nicht kust die Datenzeilen mit der Reagenzkit_id, die ausgewählt wurde, weil einer ihrer :ctrlrange über 0,23 lag.
Wenn ich dt_rgt auskommentiere << select where(Contains(h,:reagentkit_id)); Es klappt. Das bedeutet, dass in einer kleinen Tabelle mit 2.150 Zeilen die 6 Zeilen herausgegriffen werden, deren ctrlrange größer als 0,23 ist, und die Übersichtstabelle erstellt wird.
Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenWenn die Liste "h" wirklich lang ist, dann wird es ein sehr intensives Skript sein. Ich würde vorschlagen, dass Sie eine zusammenfassende Datentabellengruppierung für Ihre Spalte :reagentkit_id erstellen. Stellen Sie sicher, dass Sie „Link to original data table“ ausgewählt haben, und wählen Sie dann alle Zeilen in der Übersichtstabelle aus. Der Link zur Originaltabelle erzwingt die Auswahl aller Übereinstimmungen aus der Übersichtstabelle in der Originaltabelle.Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenEs war ein Tippfehler, als ich den Forumsbeitrag erstellt habe.
ich versuche
dt = Current Data Table();
dt << select where( :ctrlrange > 0.23 );
h = Column( dt, "reagentkit_id" ) << get Values;
dt << select where( Contains( h, :reagentkit_id ) );
Bei Verwendung auf einem Tisch mit über 2,9 Millionen Zeilen reagiert JMP nicht.Ich nehme an, das ist ein intensiver Prozess
Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenIch glaube, das ist, was Sie wollen
dt=current data table();
// You have a typo.....you are specifying dr and it should be dt....I assume
//dr<<SELECT where="">0.23);
dt<</SELECT><SELECT where="">0.23);
h=Column(dt, "reagentkit_id")<<GET values=""></GET></SELECT>
Betreff: Zeilen auswählen und darauf aufbauend weiter auswählenIch habe das "Erweitern" in der Auswahl gesehen, konnte aber nicht herausfinden, wie ich basierend auf der vorherigen Auswahl von einem Wert in einer anderen Spalte dieser Auswahl erweitern kann.