Le filtre de données dans le script JSL fonctionne lentementJ'essaie de créer un script JSL qui utilisera un filtre de données et sélectionnera environ 180 tests pertinents dans la colonne « ITEM_NAME » pour créer une nouvelle table. Lorsque j'utilise le filtre de données et que je l'exécute manuellement, il n'y a aucun délai. En revanche, lorsque j'essaie d'automatiser le processus, la création de la nouvelle table prend environ 15 minutes. Comment puis-je optimiser son exécution ?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Automatisation et scriptsRe : Le filtre de données dans le script JSL est lentEssayez ceci
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re : Le filtre de données dans le script JSL est lentMerci Jim. Pour une raison inconnue, j'obtiens cette erreur (probablement liée à la syntaxe).
Re : Le filtre de données dans le script JSL est lentL'exécution semble plus rapide maintenant : environ 3 à 4 minutes, mais beaucoup moins rapide si je le faisais manuellement. J'ai dû modifier légèrement le code pour éviter l'erreur :
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re : Le filtre de données dans le script JSL est lentMon erreur... c'était tard dans la nuit...
Re : Le filtre de données dans le script JSL est lentIl est un peu difficile de comprendre pourquoi votre script serait si lent sans voir/comprendre vos données (cela ne devrait pas l'être).
Vous pouvez essayer d'utiliser « Obtenir les lignes où » et « Sous-ensemble » au lieu de sélectionner ces lignes. Dans cet exemple, j'ai essayé de répliquer la vue de données en utilisant un sous-ensemble lié et un nom de table de sortie sans titre.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
Re : Le filtre de données dans le script JSL est lentMerci Jarmo. Votre solution a réduit le temps de traitement à environ 1,35 seconde.
La table JMP que j'utilise comporte 13 colonnes et 13 127 825 valeurs brutes. Le fichier de sortie contient 1 274 416 valeurs brutes.
Re : Le filtre de données dans le script JSL est lentIl existe très probablement des optimisations qui pourraient être effectuées, mais si cette vitesse est suffisante pour votre application, je ne m'en inquiéterais pas.