Datenfilter im JSL-Skript läuft langsamIch versuche, ein JSL-Skript zu erstellen, das mithilfe des Datenfilters ca. 180 relevante Tests in der Spalte „ITEM_NAME“ auswählt und eine neue Tabelle erstellt. Bei manueller Ausführung des Datenfilters treten keine Verzögerungen auf. Bei automatisiertem Prozess dauert die Erstellung der neuen Tabelle jedoch ca. 15 Minuten. Wie kann ich die Effizienz steigern?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Automatisierung und SkriptingBetreff: Datenfilter im JSL-Skript läuft langsamVersuchen Sie Folgendes
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Betreff: Datenfilter im JSL-Skript läuft langsamDanke, Jim. Aus irgendeinem Grund erhalte ich den Fehler (wahrscheinlich syntaktisch bedingt).
Betreff: Datenfilter im JSL-Skript läuft langsamScheint jetzt schneller zu laufen und dauerte etwa 3-4 Minuten, aber bei weitem nicht so schnell, wenn ich es manuell gemacht hätte. Um den Fehler zu vermeiden, musste ich den Code leicht ändern:
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Betreff: Datenfilter im JSL-Skript läuft langsamMein Fehler.....es war spät in der Nacht....
Betreff: Datenfilter im JSL-Skript läuft langsamEs ist etwas schwierig zu verstehen, warum Ihr Skript so langsam ist, ohne Ihre Daten zu sehen/verstehen (das sollte nicht der Fall sein).
Sie könnten versuchen, << Get Rows Where und Subset zu verwenden, anstatt diese Zeilen auszuwählen. In diesem Beispiel habe ich versucht, die Datenansicht mithilfe einer verknüpften Teilmenge und eines unbenannten Ausgabetabellennamens zu replizieren.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
Betreff: Datenfilter im JSL-Skript läuft langsamVielen Dank, Jarmo. Ihre Lösung hat die Verarbeitungszeit auf etwa 1:35 Sekunden verkürzt.
Die von mir verwendete JMP-Tabelle hat 13 Spalten und 13.127.825 Rohdaten. Die Ausgabedatei enthält 1274.416 Rohdaten.
Betreff: Datenfilter im JSL-Skript läuft langsamEs könnten höchstwahrscheinlich Optimierungen vorgenommen werden, aber wenn diese Geschwindigkeit für Ihre Anwendung ausreicht, würde ich mir darüber keine Gedanken machen.