Obtenez des valeurs de colonne uniques et utilisez-les pour filtrer/nettoyer dans une autre tableBonjour, quelle serait l'approche pour utiliser, par exemple, les clés d'un tableau pour sélectionner ou filtrer des lignes avec les mêmes clés, mais dans une table JMP différente. J'ai deux tables. L’un d’eux mappe les identifiants des échantillons pour les tests chimiques sur différents paramètres de facteurs (température, durée, numéro d’étude, etc.). J'obtiens avec succès les exemples d'ID dans un tableau. (Désolé, je suis totalement novice dans ce domaine.)
smplID = Associative array(:sampleid) << Get Keys;
Maintenant, je souhaite utiliser ces touches pour sélectionner des lignes dans le deuxième tableau (où se trouvent mes réponses), inverser la sélection de lignes et supprimer les lignes. Jusqu’à présent, cette référence ne me menait nulle part. Peut-être la solution ci-dessous,comme décrit ici,est mieux adapté pour commencer?
Summarize(dt, smpleID = by(:sampleid));
Ou peut-être que cette approche est préférable ?
dt << Summary (Group ( :sampleid ), Frequ( "None" ), Weight( "None" );
Quoi qu'il en soit, ce que je veux vraiment savoir, c'est comment utiliser l'une de ces approches pour nettoyer efficacement une table de données pour les lignes dont je n'ai pas besoin, avant de poursuivre l'analyse des données. Je suppose que je dois apprendre à faire une boucle.
Oui, j'essaie de lire le guide de script autant que possible. Je ne parviens tout simplement pas à lui donner la priorité.
Personnalisation de masseRe : Obtenir des valeurs de colonne uniques et les utiliser pour filtrer/nettoyer dans une table différenteC'est ca le truc. Je dois être très prudent avec les manipulations de table. Sinon, je pourrais égarer certaines mesures répétées. Par conséquent, j'essaie de nettoyer les tables à l'avance, car cela aide à maintenir une vue d'ensemble.
Re : Obtenir des valeurs de colonne uniques et les utiliser pour filtrer/nettoyer dans une table différenteCes méthodes seront rapides pour ce nombre de lignes !
Il y a une autre solution qui m'est venue à l'esprit, vous pouvez d'abord créer une table récapitulative, puis la joindre à la table dont vous souhaitez supprimer les valeurs trouvées.
Utilisation des échantillons de données JMP Cars.jmp et Cars 1993.jmp comme exemple. Cars 1993 sera l'une des données avec lesquelles nous filtrerons Cars en utilisant la colonne Model.
1. Créer un tableau récapitulatif à partir de Cars 1993 avec le modèle comme groupe
2. Joignez ce nouveau tableau récapitulatif au tableau Cars avec les paramètres suivants :

3. Dans la nouvelle colonne Match Flag, vous pouvez voir deux valeurs : Both et Main. Les deux signifie que le modèle peut être trouvé à partir des deux ensembles de données
Je pense que vous pouvez le faire directement avec Cars 1993, mais vous devez faire attention aux doublons (laisser tomber les multiples avec table pourrait résoudre ce problème, pas sûr). Dans ce cas également, vous voudriez choisir les colonnes que vous souhaitez conserver, car il y aura des doublons (au moins avec cet exemple).

Ces deux éléments peuvent également être scriptés assez facilement, car JMP peut effectuer la plupart des scripts.
Re : Obtenir des valeurs de colonne uniques et les utiliser pour filtrer/nettoyer dans une table différenteMerci, cela m'a BEAUCOUP aidé ! Je ne suis pas sûr de ce que "beaucoup de données" signifie vraiment. Le premier tableau que j'ouvre, contient aujourd'hui environ 400 lignes, mais ce nombre est appelé à croître avec la mise en place en cours d'un système de gestion des informations de laboratoire (LIMS) dans notre organisation. Je suppose qu'avec le temps, il y aura des milliers, peut-être même jusqu'à dix milliers de lignes. La deuxième table où je "nettoie" tous, pour moi, les ID d'échantillons non pertinents compte déjà quelque 50 000 lignes.
À partir de maintenant, après avoir implémenté votre solution, je travaille avec un tableau d'ID d'échantillons. (Bien que j'estime que mes compétences sont extrêmement limitées, les scripts semblent toujours extrêmement précieux et satisfaisants lors de la recherche d'une solution, même lorsqu'elle est "arrachée" à la communauté. Alors merci encore une fois.)
Re : Obtenir des valeurs de colonne uniques et les utiliser pour filtrer/nettoyer dans une table différentePour obtenir des valeurs uniques, toutes ces méthodes sont valides et leur vitesse dépendra de la quantité de données dont vous disposez. Il convient de noter que si vous souhaitez prendre des valeurs numériques uniques et que vous utilisez Summarize, vous devrez les reconvertir en numérique (Summarize les renvoie sous forme de chaînes).
Différentes façons d'obtenir des valeurs uniques :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
aa_uniq = Associative Array(dt:age) << get keys;
Summarize(dt, summarize_uniq = by(:age));
dt_summary = dt << Summary(Group(:age), Freq("None"), Weight("None"), private);
summary_uniq = Column(dt_summary, 1) << get as matrix;
Close(dt_summary, no save);
Show(aa_uniq, summarize_uniq, summary_uniq);Pour sélectionner des valeurs à partir de la table de données, vous pouvez utiliser Contient avec sélectionner où. Il n'est peut-être pas nécessaire d'inverser la sélection de lignes car vous pouvez utiliser ! (ou Not()) pour annuler le résultat que vous obtenez des fonctions. Les attentes sont là juste pour des raisons de démonstration :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
names_of_interest = {"KATIE", "LILLIE", "JOHN"};
wait(2);
dt << Select Where(Contains(names_of_interest, :name)) << Invert Row Selection << Hide and Exclude(1);// << clear select;
//Remove selections
wait(2);
dt << Clear Row States;
wait(2);
dt << Select Where(!Contains(names_of_interest, :name)) << Hide and Exclude(1);// << clear select;De plus, si vous avez beaucoup de données, ce n'est peut-être pas le moyen le plus efficace de le faire, mais c'est probablement le plus simple et je commencerais par celui-ci.