Versuch, ein Skript zu schreiben, das die Ergebnisse der Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtHallo – ich versuche, ein JSL-Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Datei anfügt. Mein aktuelles Skript schreibt in eine Excel-Datei, aber ich möchte das Skript mehrmals ausführen und jedes neue Ergebnis an das vorhandene Excel-Blatt anhängen können. (Derzeit füge ich das neue Ergebnis manuell an.) Siehe beigefügtes Skript.
Dank im Voraus!
ps Ich verwende JMP Pro 17
Automatisierung und SkriptingBetreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtAusgezeichnet – danke, Jim!
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtHier ist ein Beispielskript, das hoffentlich verdeutlicht, was Sie tun müssen, um neue Daten mit einer Masterdatei zu verknüpfen
names default to here(1);
// Create 2 data tables and save them as excel files
// one will be the master and one will play the role of the new data
dtExample = open("$SAMPLE_DATA/big class.jmp");
theTables =dtExample << Subset(
By( :sex ),
All rows,
Selected columns only( 0 ),
columns( :name, :age, :height, :weight )
);
close( dtExample, nosave );
// Change the names of the first table to Master
theTables[1] << set name("Master");
data table("Master") << bring window to front;
// Add the new columns to the master, like your master file already
// has all of the columns. In this example, I will only add 1 column
data table("Master")<< new column("Ratio", set each value(:height/:weight));
// Wait 5 seconds so you can observe the master table
wait(5);
// save and close the Master table as an excel table
close( data table("Master"), save("$TEMP/master.xlsx"));
// Change the name of the second table to New Data
theTables[2] << set name("New Data");
data table("New Data") << bring to front;
// wait 5 seconds here too, so you can observe the New Data table
wait(5);
// now save and close the New Data table as an excel table
close( data table("New Data"), save("$TEMP/New Data.xlsx"));
// Now that there are a Master and a New Data table that have been
// created we can now illustrate how to read in some new data,
// add the required new columns, save it, then open the master file,
// and concatenate the new data to the master and then save the updated
// master file
// open the new data table. I am using the variable dt as the pointer
// to the file, since that is what you are doing in your script
dt = open("$TEMP/New Data.xlsx");
// Add the new columns (in this example, only 1 column) to the data table
// your syntax is
// new column("ratio", formula(:height/:weight);
// I suggest that you become more precise and point to the specific data table
// by using either
// dt << New Column(......);
// or
// data table("New Data") << New Column( ...... );
data table("New Data") << New Column( "Ratio", formula(:height/:weight));
// Now the data can be saved
// use either
// dt<< save(...........);
// or
// data table("New Data")<< save(................);
dt << save("$TEMP\test1 n=22.xlsx");
// now open the master table
dtMaster = open("$TEMP\master.xlsx");
// concatenate the new data table to the master
dtMaster << concatenate( dt, append to first table(1));
// now save the master
dtMaster << save("$TEMP\master.xlsx");
// uncomment the below code if you want to close the new data and the master tables
// close( dt, nosave );
// close( dtMaster, nosave );
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtLeider hat das nicht geholfen. Das Verkettungsskript funktioniert immer noch nicht. (Komischerweise bin ich mir nicht sicher, warum ich bei jeder Ausführung des Skripts ein Kontrollkästchen in einem Popup-Fenster anklicken muss, wenn das Skript den Prozess automatisiert.)
Außerdem (wahrscheinlich nicht damit verbunden, dass das Verkettungsskript nicht funktioniert) wird aus irgendeinem Grund zu Beginn des Laufs ein Relikt (jetzt gelöschte Datei) geöffnet, statt der Datei, die laut Skript ausgeführt werden soll. Ich kann nicht herausfinden, warum das passiert.

Dann führe ich die Regression aus, füge basierend auf den Ergebnissen des Laufs einige Spalten hinzu und dann...

Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtAktivieren Sie das Kontrollkästchen „An erste Tabelle anhängen“
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtDies ist, was nach dem Ausführen geöffnet wird. (Merkwürdigerweise wird ein Reliktdateiname (v2n=25...) angezeigt, den mein JSL-Code NICHT verwendet – ich habe das immer wieder überprüft.) Der folgende Code – unten gezeigt – erzeugt jedenfalls keine verknüpften Zeilen.

dt << speichern("C:\Benutzer\trcampbell\Desktop\MASTER ECOLI\2024\Regressionsanalyse\Validierungsläufe\testtest2 n=258.xls");
///Anhängeskript hinzufügen
Verketten("C:\Benutzer\trcampbell\Desktop\MASTER ECOLI\2024\Regressionsanalyse\Validierungsläufe\Masterfile n=258.xls") ;
//SAVE MASTERFILE mit Zeilen (angehängt) aller Läufe
dt<< speichern("C:\Benutzer\trcampbell\Desktop\MASTER ECOLI\2024\Regressionsanalyse\Validierungsläufe\Masterfile n=258.xls");
Ich bin für jeden Vorschlag sehr dankbar.
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtJa
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtDanke, Jim. Wenn das Skript, das die Analyse ausführt und Tabellen hinzufügt, eine Datei mit dem Namen X erstellt, muss X dann vor der Verkettung zuerst gespeichert werden? Und wenn ja, ist der Tabellenname in meiner Verkettungsfunktion die Datei, die die Ergebnisse aller Durchläufe erhält (d. h. Verkettung (Masterdatei))?
Wenn das oben Gesagte also zutrifft, würde ich sagen:
speichern X
Verketten (Masterdatei)
Masterdatei speichern
Skript erneut ausführen
Lese ich das richtig?
Betreff: Versuch, ein Skript zu schreiben, das die Ergebnisse einer Regressionsanalyse an eine vorhandene Excel-Tabelle anfügtEs sieht so aus, als müssten Sie Folgendes tun, nachdem Sie die neuen Spalten in Ihrer Datentabelle erstellt haben. Dann müssen Sie die Excel-Tabelle einlesen, der Sie die Daten hinzufügen möchten. Dann müssen Sie „Tabellen=>Verketten“ verwenden, um die neue Tabelle der Tabelle hinzuzufügen, der Sie die Daten hinzufügen möchten, und dann die neu verkettete Tabelle speichern.