JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleIch habe eine Excel-Tabelle, die ich wöchentlich manuell aktualisiere. Als nächstes öffne ich diese Tabelle in JMP und stapele jede Spalte ab Spalte 2. Mit jedem wöchentlichen Update füge ich der Anfangstabelle weitere Spalten hinzu. Ich habe vor kurzem eine Einführung in die JMP-Scripting-Klasse gemacht und möchte diesen Prozess ein wenig automatisieren, anstatt ihn jedes Mal von Grund auf neu zu stapeln.
So sieht die Tabelle in JMP aus, bevor der Stack ausgeführt wird:

Ich weiß, wie man die Excel-Tabelle über ein Skript wie folgt in JMP importiert:
Open(
"Drive:\Folder\File.xlsx",
Worksheets( "Data" ), // etc.
Aber wo ich eine Frage hatte, ist, wie ich das JMP-Skript ändere, um es zu bitten, Spalten 2 bis Ende zu stapeln?
Ich habe Folgendes aus einem manuellen Stack in JMP und dem Betrachten des Quellskripts:
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 wie ich sie zusammensetzen soll. Wird der Stack(-Befehl irgendwie in den For(-Befehl eingefügt?
Danke an jeden der helfen kann!
DatentabelleSkriptingBetreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleIch denke, dass Sie mit der Stack-Plattform einfach eine Spaltenliste im Columns()-Argument verwenden können
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)
);Holen Sie sich also eine Liste der Spaltennamen, 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(...)Siehe Hilfe / Scripting-Index und suchen Sie nach verschiedenen hier verwendeten Funktionen.
Betreff: JMP-Skript zum Stapeln von Spalte 2-unendlich aus einer wöchentlich aktualisierten Excel-TabelleHier ist eine Möglichkeit, damit umzugehen.Übrigens, Ihre Beispieldatentabelle konnte nicht geöffnet werden, also 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" )
);