Concaténer toutes les tables de données à l'aide de JSLBonjour, je souhaite concaténer toutes les tables de données ouvertes. Cependant, le nombre de tables de données peut varier et je souhaite que le script puisse s'adapter à différents nombres de tables.
Voici le code de ce que je veux faire, mais je souhaite le généraliser :
Table de données ( N Table () ) << Concaténer (
Table de données ( (N Table()-1) ),
Table de données ( (N Table()-2) ),
Table de données ( (N Table()-3) ),
Tableau de données ( (N Tableau()-4) ),
Tableau de données ( (N Tableau()-5) ),
Table de sortie( "Tous Temps" ),
Créer une colonne source
);
C'est le code que j'ai essayé, une erreur de nom non résolu de la table de sortie se produit (dans ce cas, noTemps vaut 6)
Table de données ( N Table () ) << Concaténer (
Pour( i = 1, i < (noTemps), i++,
Table de données ( (N Table()-i) ),
);
Table de sortie( "Tous Temps" ),
Créer une colonne source
);
Automatisation et scriptsAccès aux donnéesMélange et nettoyage des donnéesRe : Concaténer toutes les tables de données en utilisant JSLQuelle version de JMP utilisez-vous ?
Re : Concaténer toutes les tables de données en utilisant JSLSi JMP16+, j'utiliserais pour chacun et je bouclerais la liste des tables
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = dt1 << Subset(All Rows, Selected Columns(0), Output Table("DEMO"));
dts = Get Data Table List();
dt_first = Remove From(dts, 1); // remove first table as we concatenate to that
For Each({dt}, dts,
dt_first << Concatenate(
dt,
"Append to first table",
"Create source column"
);
// Close(dt, no save);
);Re : Concaténer toutes les tables de données en utilisant JSLMerci pour votre réponse, mais j'ai du mal à appliquer cela à ma situation (même si je pense que cela devrait être relativement simple).
Qu'est-ce que le dt ? J'obtiens une erreur de nom non résolue.
Je n'ai pas non plus dt1 attribué car toutes les tables sont déjà ouvertes depuis la partie précédente du script. Comment puis-je l'attribuer sans appeler directement une table spécifique ?
Si j'attribue dt1 comme ci-dessous, une table de démonstration est produite, cependant, la table est pleine du mot démo.
dt1 = Ouvert( "$DOCUMENTS/Plot_Conduction_Losses/Module 6/DUT2/100C.jmp" );
Désolé si c'est mal expliqué et verbeux.
Re : Concaténer toutes les tables de données en utilisant JSLdt1 et dt2 sont là uniquement à des fins de démonstration. Vous obtenez les références à toutes les tables ouvertes en utilisant Get Data Table List(). Quelle version de JMP utilisez-vous (pour chacune nécessite JMP16+, mais elle peut être remplacée par For) ? dt est une référence à une table de données qui peut être trouvée dans la liste des références datatables dans dts.
Re : Concaténer toutes les tables de données en utilisant JSLJ'ai JMP17.
Je comprends la partie dt maintenant, désolé pour la confusion.
dts = Obtenir la liste des tables de données ();
dt_first = Supprimer de (dts, 1); // supprime la première table lorsque nous la concaténons
Pour chaque({dt}, dts,
dt_first << Concaténer (
dt,
//Ajouter au premier tableau,
"Créer une colonne source",
Table de sortie( "Tous Temps" ),
);
//Fermer(dt, pas de sauvegarde);
);
Ce n'est pas vraiment ce que je veux. Il produit 6 nouvelles tables de données toutes concaténées avec dt_first.J'aimerais que ce soit une nouvelle table de données. Si je décommente, ajoutez à la première ligne du tableau. il produit 6 colonnes sources que je ne peux pas utiliser pour trier dans une analyse plus approfondie.
Re : Concaténer toutes les tables de données en utilisant JSLJe ne me souviens pas que vous pouvez utiliser une liste avec concaténer
Names Default To Here(1);
Open("$SAMPLE_DATA/Students.jmp");
Open("$SAMPLE_DATA/Students1.jmp");
Open("$SAMPLE_DATA/Students2.jmp");
dts = Get Data Table List();
dt_first = Remove From(dts, 1)[1]; // remove first table as we concatenate to that
dt_result = dt_first << Concatenate(dts, "Create source column");
Il faut/devrait également obtenir le premier index de Remove From() car Remove From() renvoie une liste.