So filtern / bereinigen Sie Daten JMP mithilfe einer Liste [tipp, JSL, scripting]Nachdem ich so viel großartige Unterstützung erhalten hatte, dachte ich, es wäre an der Zeit, diesen Gefallen zurückzugeben. Unten finden Sie ein kleines Programm, das das Filtern von Datentabellen erleichtern könnte. Harte Kodierung nach "Eingabe" ist eine Möglichkeit, Einträge zu filtern; das ist mühsam und anfällig für Tippfehler. Eine Alternative besteht darin, Einträge nach ihrer "Position" in einer Filterliste zu filtern. Dieser Ansatz geht lediglich davon aus, dass sich die Reihenfolge der Felder in der Filterliste nicht ändert. Überprüfen Sie zur Sicherheit einfach das JMP-Protokoll. Als Qualitätsprüfung, d.h Sie erfahren, welche Einträge ausgeschlossen wurden.
Viel Glück
Neuling2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;
Betreff: So filtern / bereinigen Sie Daten JMP mithilfe einer Liste [Tipp, JSL, Skripting] - Wie funktioniert es bei Duplikaten?Hier ist eine Möglichkeit, dies zu tun.Die einzige Schwierigkeit besteht darin, die Matrix der Zeilennummern in eine Liste umzuwandeln
Names Default To Here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
eval(parse("NAME_LIST =as list (" || char(index(1,n rows(dt))) || ")[1];"));
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
Remove From( NAME_LIST, {1, 3, 5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where( Contains( NAME_LIST, Row() ) );
dt_2 = dt << subset( selected rows( 1 ), all columns );
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
Close( dt, nosave );Betreff: So filtern / bereinigen Sie Daten JMP mithilfe einer Liste [Tipp, JSL, Skripting] - Wie funktioniert es bei Duplikaten?
Hallo alle,
Letzten Freitag habe ich ein kleines JMP bereitgestellt, das hilft, Daten nach ihrer "Position" in einer Filterliste zu filtern.
In einer PN erhielt ich eine Nachricht, dass dies nur so lange funktioniert, wie die für die Filterliste gescannten Einträge eindeutig sind. Zum Beispiel, wenn alle nach NAME gefilterten Einträge eindeutig sind, zB wenn Sie "Katie" herausfiltern möchten; „Jane“ oder „Lilli“.Jetzt taucht „Robert“ gleich zweimal in „BIG CLASS“ auf. Sobald man auch „Robert“ ausschließen will, bleibt dieser Ansatz hängen. Irgendeine Idee, wie man das löst?
Neuling2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;