Essayer 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 scriptsRe : Essayer d'écrire un script qui ajoutera les résultats de l'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 table de données, vous devez lire dans la table Excel à laquelle vous souhaitez ajouter les données, utilisez Tables => Concaténer pour ajouter la nouvelle table à la table à laquelle vous souhaitez ajouter les données, puis enregistrez-les nouvellement concaténées.
Re : Essayer d'écrire un script qui ajoutera les résultats de l'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 tel est le cas, 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 (fichier maître) ?
Donc si ce qui précède est correct, je dirais :
sauvegarder X
concaténer (fichier maître)
enregistrer le fichier maître
réexécuter le script
Est-ce que je lis correctement ?
Re : Essayer d'écrire un script qui ajoutera les résultats de l'analyse de régression à une feuille de calcul Excel existanteOui
Re : Essayer d'écrire un script qui ajoutera les résultats de l'analyse de régression à une feuille de calcul Excel existanteC'est ce qui s'ouvre après la course. (Curieusement, il affiche un nom de fichier relique (v2n=25....) que mon code jsl n'utilise PAS - j'ai vérifié et revérifié). Dans tous les cas, le code suivant – illustré ci-dessous – ne produit pas de lignes concaténées.

dt << save("C:\Users\trcampbell\Desktop\MASTER ECOLI\2024\analyse de régression\exécutions de validation\testtest2 n=258.xls");
///AJOUTER UN SCRIPT D'AJOUT
Concatenate("C:\Users\trcampbell\Desktop\MASTER ECOLI\2024\analyse de régression\exécutions de validation\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 sera très appréciée.
Re : Essayer d'écrire un script qui ajoutera les résultats de l'analyse de régression à une feuille de calcul Excel existanteEssayez de cocher la case intitulée "Ajouter à la première table".
Re : Essayer d'écrire un script qui ajoutera les résultats de l'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 sais pas pourquoi je devrais cocher une case dans une fenêtre contextuelle à chaque fois que j'exécute le script.)
De plus (probablement pas lié au fait que le script de concaténation ne fonctionne pas), pour une raison quelconque, une relique (fichier maintenant supprimé) est ouverte au début de l'exécution, au lieu du fichier que le script dit 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, et puis....

Re : Essayer d'écrire un script qui ajoutera les résultats de l'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 );
Re : Essayer d'écrire un script qui ajoutera les résultats de l'analyse de régression à une feuille de calcul Excel existanteExcellent - merci, Jim !