Re : Comment appliquer un script à plusieurs tables de données à la fois ? (JMP 17)Utiliser For Each est la bonne idée. Vous obtenez la référence à votre table de données de référence lorsque vous l'ouvrez et vous obtenez une liste de références à d'autres tables de données à partir de Multiple File Import (si je me souviens bien...). Vous pouvez ensuite boucler sur cette liste en utilisant For Each
Re : Comment appliquer un script à plusieurs tables de données à la fois ? (JMP 17)Bonjour @Kast ,
Une suite à ce que @jthi mentionné. Un script pour faire cela pourrait ressembler à ceci.La syntaxe d'expression correcte est encore un peu floue pour moi, mais cela devrait être la plupart du temps ce dont vous avez besoin.
Names default to here(1);
dt_list = Multiple file import(); // Incomplete placeholder
table_script = expr( New script( "Table script name here", // Add new tables scripts with New script()
Graph Builder( // Incomplete table script graphic script
Size( 800, 800 ),
Show Control Panel( 0 ),
Variables( X( :Column 1 ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Example title" )}
)
)
)
);
Eval( // For each loop adds table_script to each data table named in dt_list
Eval Expr(
For Each( {value, index},
Expr( dt_list[index] << table_script )
)
)
);
Eval( // for loop alternative
eval expr(
for( i = 1, i <= N Items( dt_list ), i++,
expr( dt_list[i] << table_script )
)
)
);Comment appliquer un script à plusieurs tables de données à la fois ? (JMP 17)Je cherche un moyen d'exécuter un script sur plusieurs tables de données en exécutant le script une fois au lieu d'exécuter le script une fois par table de données.
Flux de données actuel
- Ouvrir la table de données JMP de référence.
- Utilisez un premier script (basé sur l'importation de fichiers multiples) pour importer plusieurs fichiers Excel dans plusieurs tables de données JMP (1 table par fichier).
- Résultat : 1 table de données de référence ouverte et 2 à 10+ nouvelles tables de données JMP à partir du script d'importation.
- Exécutez un 2e scénario sur chaque table de données JMP créée pour nettoyer les données et mettre à jour les tables de données créées avec les données de la table de données JMP de référence.
- Résultat : 1 tableau de données de référence et 2 à 10+ tableaux de données JMP qui ont été nettoyés (suppression de colonnes, ajout de colonnes calculées, etc.) et mis à jour (mise à jour scriptée du tableau de données) avec les données du tableau de données de référence.
J'aimerais trouver une solution où je n'ai pas à appliquer manuellement mon 2e scénario individuellement à chaque tableau de données JMP créé.
Je suis ouvert à toutes démarches.
J'ai pensé à essayer d'utiliser des listes JMP et/ou la fonction "Pour chaque", mais je n'ai pas trouvé d'exemples d'application de ces listes à des tables de données. Je pense que je devrais faire une liste de toutes les tables de données ouvertes filtrées par leur nom (afin que je puisse filtrer la table de données de référence que j'utilise pour mettre à jour les tables de données d'intérêt), je ne sais pas non plus comment faire cela.
Merci pour tous vos conseils et idées.
Automatisation et scriptRe : Comment appliquer un script à plusieurs tables de données à la fois ? (JMP 17)Merci à vous deux. J'apprécie vraiment l'aide.
; //with all Multiple File Import details included
</CODE></PRE><P>fonctionne certainement pour faire la liste.</P><P> </P><P>Je n'ai pas réussi à faire fonctionner cela pour moi, mais j'apprends toujours à utiliser Eval, EvalExpr, Expr, etc.</P><PRE><CODE class=" language-jsl">Eval( // For each loop adds table_script to each data table named in dt_list
Eval Expr(
For Each( {value, index},
Expr( dt_list[index] << table_script )
)
)
);dt_list = Multiple File Import()
J'ai pu obtenir un test simple pour travailler avec For Each dans ce format. Script de colonne ajouté simple.
For Each({listitem}, dt_list, listitem << New Column( "Mean",
Numeric,
"Continuous",
Formula( Mean( :A, :B, :C, :D</img> ) ),
Format( "Best", 12 )));Mon exemple de code de travail complet est
Names default to here(1);
dt_list = Multiple File Import(
<<SET folder=""> ) ),
Format( "Best", 12 )));
</SET>