JMP-Skript zum Stapeln von Spalte 2 bis unendlich aus einer wöchentlich aktualisierten Excel-TabelleIch habe eine Excel-Tabelle, die ich wöchentlich manuell aktualisiere. Anschließend öffne ich diese Tabelle in JMP und stapele jede Spalte ab Spalte 2. Mit jeder wöchentlichen Aktualisierung füge ich der ursprünglichen Tabelle weitere Spalten hinzu. Ich habe kürzlich einen Einführungskurs in JMP-Skripting besucht und möchte diesen Prozess etwas automatisieren, anstatt ihn jedes Mal von Grund auf neu zu stapeln.
So sieht die Tabelle in JMP vor der Ausführung des Stapels aus:

Ich weiß, wie man die Excel-Tabelle über ein Skript wie das folgende in JMP importiert:
Open(
"Drive:\Folder\File.xlsx",
Worksheets( "Data" ), // etc.
Ich habe jedoch eine Frage: Wie ändere ich das JMP-Skript, um es aufzufordern, die Spalten 2 bis zum Ende zu stapeln?
Ich habe Folgendes aus der manuellen Stapelverarbeitung in JMP und der Betrachtung des Quellskripts erfahren:
Data Table( "Data" ) << Stack(
columns(
:Name( "8/23/2021" ),
:Name( "08/30/2021" ),
:Name( "09/06/2021" ),
:Name( "09/13/2021" ),
:Name( "09/20/2021" ) // etc.
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);
und ich habe das Framework einer For(-Funktion, die ich verwenden kann:
For( c = 2, i <= N Col(), c++,
//body//aber ich weiß einfach nicht genau, wie ich sie zusammenfügen soll. Wird der Stack(-Befehl irgendwie in den For(-Befehl eingefügt?
Vielen Dank an alle, die helfen können!
Konsumenten- und MarktforschungDatenzugriffDatenzusammenführung und -bereinigungBetreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleDanke für die Antwort, txnelson! Diese Lösung hat funktioniert.:D
Betreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleVielen Dank für die Antwort, jthi! Ich werde damit herumspielen und sehen, ob ich es zum Laufen bekomme.
Betreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleHier ist eine Möglichkeit, damit umzugehen.Übrigens konnte Ihre Beispieldatentabelle nicht geöffnet werden, daher habe ich eine eigene hinzugefügt.
names default to here(1);
dt=data table("Example");
colNames = dt << get column names();
remove from(colNames, 1, 2 );
dt << Stack(
columns( colNames
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);Betreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleIch denke, dass man bei der Stack-Plattform einfach eine Liste von Spalten im Argument columns() verwenden kann
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols_to_stack = {"NPN1", "PNP1", "PNP2"};
dt_stacked = dt << Stack(
columns(cols_to_stack),
Source Label Column("Label"),
Stacked Data Column("Data"),
Drop All Other Columns(1)
);Rufen Sie also eine Liste der Spaltennamen ab, die Sie aus der Datentabelle haben, die Sie aus einer Excel-Datei erstellen, indem Sie << Get Column Names(String) verwenden, und löschen Sie dann die erste Spalte mit Remove From().
Names Default To Here(1);
dt = Open(
"$SAMPLE_IMPORT_DATA/Team Results.xlsx",
Worksheets("Ungrouped Team Results"),
Worksheet Settings(Headers Start on Row(3), Data Starts on Row(4))
);
//all columns
col_names = dt << Get Column Names("String");
//drop first column
Remove From(col_names, 1);
//stack with remaining, won't work exactly like this with this example data, as data types aren't same
//dt_stacked = dt << Stack(...)Sehen Sie sich den Hilfe-/Skriptindex an und suchen Sie nach verschiedenen hier verwendeten Funktionen.