J'essaie d'écrire un script qui ajoutera les résultats de l'analyse de régression à une feuille de calcul Excel existanteBonjour, j'essaie d'écrire un script jsl qui ajoutera les résultats d'une analyse de régression à un fichier Excel existant. Mon script actuel écrit dans un fichier Excel, mais je souhaite pouvoir exécuter le script plusieurs fois et ajouter chaque nouveau résultat à la feuille Excel existante. (Actuellement, j'ajoute le nouveau résultat manuellement.) Voir le script ci-joint.
Merci d'avance!
ps j'utilise JMP Pro 17
Automatisation et scriptsRé : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteExcellent – merci, Jim !
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteVoici un exemple de script qui, je l'espère, clarifie ce que vous devez faire pour concaténer de nouvelles données dans un fichier maître
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 );
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteMalheureusement, cela n'a pas aidé. Le script de concaténation ne fonctionne toujours pas. (Curieux, si le script automatise le processus, je ne vois pas pourquoi je devrais cliquer sur une case à cocher dans une fenêtre contextuelle à chaque fois que j'exécute le script.)
De plus (ce qui n'est probablement pas lié au fait que le script de concaténation ne fonctionne pas), pour une raison quelconque, un fichier relict (désormais supprimé) est ouvert au début de l'exécution, au lieu du fichier que le script indique d'exécuter. Je n'arrive pas à comprendre pourquoi cela se produit.

J'exécute ensuite la régression, j'ajoute quelques colonnes en fonction des résultats de l'exécution, puis...

Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteEssayez de cocher la case intitulée « Ajouter au premier tableau »
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteVoici ce qui s'ouvre après l'exécution. (Curieusement, il affiche un nom de fichier relict (v2n=25....) que mon code jsl n'utilise PAS - j'ai vérifié et revérifié). Dans tous les cas, le code suivant - présenté ci-dessous - ne produit pas de lignes concaténées.

dt << save("C:\Users\trcampbell\Desktop\MASTER ECOLI\2024\regression analysis\validation runs\testtest2 n=258.xls");
///AJOUTER UN SCRIPT D'APPENDRE
Concaténer("C:\Users\trcampbell\Desktop\MASTER ECOLI\2024\regression analysis\validation runs\masterfile n=258.xls") ;
//ENREGISTRER LE FICHIER MAÎTRE CONTENANT LES LIGNES (AJOUTÉES) DE TOUTES LES EXÉCUTIONS
dt<< save("C:\Users\trcampbell\Desktop\MASTER ECOLI\2024\analyse de régression\exécutions de validation\masterfile n=258.xls");
Toute suggestion serait la bienvenue.
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteOui
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteMerci Jim. Si le script qui exécute l'analyse et ajoute des tables produit un fichier nommé X, X doit-il d'abord être enregistré avant la concaténation ? Et si oui, le nom de la table dans ma fonction Concatenate est-il le fichier qui reçoit les résultats de toutes les exécutions (c'est-à-dire Concatenate (masterfile) ?
Donc si ce qui précède est correct, je dirais :
sauvegarder X
concaténer (fichier maître)
sauvegarder le fichier maître
relancer le script
Est-ce que je lis correctement ?
Ré : Je tente d'écrire un script qui ajoutera les résultats d'une analyse de régression à une feuille de calcul Excel existanteIl semble que ce que vous devez faire, c'est qu'après avoir créé les nouvelles colonnes dans votre tableau de données, vous devez lire le tableau Excel auquel vous souhaitez ajouter les données, utiliser Tables=>Concaténer pour ajouter le nouveau tableau au tableau auquel vous souhaitez ajouter les données, puis enregistrez-le nouvellement concaténé.