Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?En utilisant le code trouvé dans cette discussion (Résolu : Comment récupérer les données sélectionnées par Data Filter() dans une nouvelle table de données (avec JSL) ? - Communauté des utilisateurs JMP ; https://community.jmp.com/t5/Discussions/How-to-get-data-selected-by-Data-Filter-into-a-new-data-table/mp/642343 ) , je peux sélectionner des combinaisons d'âge et de sexe spécifiques via le filtre de données et générer une table de sous-ensemble intitulée « Sous-ensemble de la classe » contenant uniquement les lignes souhaitées. Cependant, j'aimerais utiliser les options cochées dans le filtre de données pour nommer ou renommer le fichier de données. Par exemple, si je sélectionne l'âge 13 et le sexe féminin, j'aimerais nommer automatiquement la table « Âge 13 Sexe F Sous-ensemble de la classe » ou quelque chose de similaire. Malheureusement, je ne parviens pas à récupérer ces valeurs à partir du filtre de données ou dans le script.
Quelqu'un pourrait-il m'indiquer la fonction, l'option ou la syntaxe appropriée ?
Je pourrais les extraire des données résultantes elles-mêmes, je suppose, mais je dois croire qu'il existe un moyen de stocker ces valeurs « à la source ».
JMP 17
Merci!
Automatisation et scriptageRe : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?Sans savoir précisément à quoi vous souhaitez que le nom ressemble, je commencerais peut-être par examiner la fonction « Obtenir la clause WHERE », que vous pouvez envoyer au filtre de données et qui vous donnera un résultat similaire à celui-ci :

"Select Where((:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!"))"
Vous pouvez ensuite extraire
(:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!")
et utilisez cela comme nom
Re : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?Merci pour la suggestion, Jarmo. J'ai déjà utilisé « SELECT WHERE » dans d'autres scripts. Malheureusement, j'ai besoin de l'aspect interactif du filtre de données, car il sera différent à chaque exécution. Je ne peux pas coder en dur des options spécifiques comme suggéré, à moins que je n'aie mal compris votre idée ?
Concernant le nom, n'importe quel format me convient, pourvu que les informations souhaitées y figurent. Je n'ai pas besoin de me préoccuper de la création du nom une fois que j'aurai récupéré l'âge (ou les âges) et le sexe (ou les sexes) et que je pourrai les stocker dans une variable ou un objet manipulable.
Re : Comment renommer un tableau de données partiel en fonction des filtres de données utilisés pour le créer ?Le format obtenu avec << Get Where Clause est une option. Vous pouvez également extraire les valeurs du tableau résultant en fonction des colonnes utilisées dans le filtre (cette opération est possible à partir du tableau d'origine, mais il est plus simple et généralement plus rapide de le faire à partir du tableau de résultats).
Re : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?Voici un exemple de création d'un sous-ensemble d'une table définie par les paramètres d'un filtre de données. Le nom de la nouvelle table correspond à la clause WHERE utilisée pour sa création. Ce sous-ensemble est créé à la fermeture du filtre de données si des sélections ont été effectuées.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = New Window( "Select Parameters",
//<
<MODAL></MODAL> theClause = obj << Get Where Clause;
If( theClause != "",
dt << subset(
selected columns( 1 ),
selected rows( 1 ),
output table( Substr( theClause, 14, Length( theClause ) - 15 ) )
)
);
);
Re : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?@txnelson Je crois que tu as laissé tomber
theClause = obj << Get Where Clause;
avant Si.
Option d'analyse syntaxique utilisant une expression régulière (je ne suis pas sûr que cela fonctionnera dans tous les cas)
tbl_name = Regex(theClause, "Select Where\((.+)\)", "\1")
Re : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?Oui, je l'ai fait... J'ai corrigé ma première entrée.
Re : Comment renommer un sous-tableau de données en fonction des filtres de données utilisés pour le créer ?Merci beaucoup ! Ça fonctionne parfaitement. J'apprécie vraiment la leçon sur l'utilisation correcte de la clause GET WHERE. Je voyais bien que la suggestion de Jarmo était la bonne, mais en l'essayant, j'obtenais une erreur. Je vois que vous l'avez résolue en supprimant le mode modal et en l'encapsulant dans le code gérant la fermeture de la fenêtre. J'apprends lentement, mais j'apprends. Merci encore !