Betreff: Wie wende ich ein Skript auf mehrere Datentabellen gleichzeitig an? (JMP 17)Die Verwendung von For Each ist die richtige Idee. Sie erhalten den Verweis auf Ihre Referenzdatentabelle, wenn Sie sie öffnen, und Sie erhalten eine Liste mit Verweisen auf andere Datentabellen aus dem Multiple File Import (wenn ich mich richtig erinnere ...). Sie können diese Liste dann durchlaufen, indem Sie „For Each“ verwenden
Betreff: Wie wende ich ein Skript auf mehrere Datentabellen gleichzeitig an? (JMP 17)Hallo @Kast ,
Eine Fortsetzung von was @jthi genannt. Ein Skript hierfür könnte wie folgt aussehen.Die korrekte Ausdruckssyntax ist mir immer noch etwas unklar, aber dies sollte weitgehend Ihren Anforderungen entsprechen.
Names default to here(1);
dt_list = Multiple file import(); // Incomplete placeholder
table_script = expr( New script( "Table script name here", // Add new tables scripts with New script()
Graph Builder( // Incomplete table script graphic script
Size( 800, 800 ),
Show Control Panel( 0 ),
Variables( X( :Column 1 ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Example title" )}
)
)
)
);
Eval( // For each loop adds table_script to each data table named in dt_list
Eval Expr(
For Each( {value, index},
Expr( dt_list[index] << table_script )
)
)
);
Eval( // for loop alternative
eval expr(
for( i = 1, i <= N Items( dt_list ), i++,
expr( dt_list[i] << table_script )
)
)
);Wie wende ich ein Skript auf mehrere Datentabellen gleichzeitig an? (JMP 17)Ich suche nach einer Möglichkeit, ein Skript über mehrere Datentabellen hinweg auszuführen, indem ich das Skript einmal ausführe, anstatt das Skript einmal pro Datentabelle auszuführen.
Aktueller Datenfluss
- Öffnen Sie die JMP-Referenzdatentabelle.
- Verwenden Sie ein erstes Skript (basierend auf dem Import mehrerer Dateien), um mehrere Excel-Dateien in mehrere JMP-Datentabellen zu importieren (1 Tabelle pro Datei).
- Ergebnis: 1 Referenzdatentabelle geöffnet und 2–10+ neue JMP-Datentabellen aus dem Importskript.
- Führen Sie a aus 2. Drehbuch auf jeder erstellten JMP-Datentabelle, um die Daten zu bereinigen und die erstellten Datentabellen mit Daten aus der Referenz-JMP-Datentabelle zu aktualisieren.
- Ergebnis: 1 Referenzdatentabelle und mehr als 2–10 JMP-Datentabellen, die bereinigt (Spalten löschen, berechnete Spalten hinzufügen usw.) und mit Daten aus der Referenzdatentabelle aktualisiert (Skript-Datentabelle aktualisieren) wurden.
Ich würde gerne eine Lösung finden, bei der ich meine nicht manuell anwenden muss 2. Drehbuch einzeln für jede erstellte JMP-Datentabelle.
Ich bin für alle Ansätze offen.
Ich habe darüber nachgedacht, JMP-Listen und/oder die Funktion „Für jeden“ zu verwenden, konnte jedoch keine Beispiele für deren Anwendung auf Datentabellen finden. Ich denke, ich müsste eine Liste aller offenen Datentabellen erstellen, gefiltert nach ihrem Namen (damit ich die Referenzdatentabelle herausfiltern kann, die ich zum Aktualisieren der Datentabellen von Interesse verwende). Ich weiß auch nicht, wie das geht.
Vielen Dank für alle Ratschläge und Ideen.
Automatisierung und SkripterstellungBetreff: Wie wende ich ein Skript auf mehrere Datentabellen gleichzeitig an? (JMP 17)Danke euch beiden. Ich schätze die Hilfe wirklich.
; //with all Multiple File Import details included
</CODE></PRE><P>Funktioniert auf jeden Fall für die Erstellung der Liste.</P><P> </P><P>Ich habe es nicht geschafft, das für mich selbst zum Laufen zu bringen, aber ich lerne immer noch, wie man Eval, EvalExpr, Expr usw. verwendet.</P><PRE><CODE class=" language-jsl">Eval( // For each loop adds table_script to each data table named in dt_list
Eval Expr(
For Each( {value, index},
Expr( dt_list[index] << table_script )
)
)
);dt_list = Multiple File Import()
Ich konnte einen einfachen Test mit For Each in diesem Format zum Laufen bringen. Einfaches hinzugefügtes Spaltenskript.
For Each({listitem}, dt_list, listitem << New Column( "Mean",
Numeric,
"Continuous",
Formula( Mean( :A, :B, :C, :D</img> ) ),
Format( "Best", 12 )));Mein vollständiger funktionierender Beispielcode ist
Names default to here(1);
dt_list = Multiple File Import(
<<SET folder=""> ) ),
Format( "Best", 12 )));
</SET>