Filtrer les colonnes du tableau en fonction d'une listeSalut tout le monde,
J'utilise JMP Pro depuis un certain temps, même si je n'ai jamais exécuté de scripts avec. J'explore également JMP Genomics, car j'utilise un bon nombre d'analyses « omiques » sur diverses plates-formes. Pour l'instant, je suis dans le monde JMP Pro et j'essaie de comprendre comment filtrer les tables de données.
Une chose que je n'arrive pas à comprendre, c'est comment filtrer (ou créer une nouvelle table) une table basée sur une liste (contenant des noms de colonnes) ou sur les résultats d'un test. Par exemple, j'ai un large tableau (tableau 1) de 600 lignes x 10 000 colonnes. J'ai une autre table (table 2) avec une seule colonne d'ID de colonne de la table 1 (200 noms de colonne).
Existe-t-il un moyen de :
- Créer des groupes de colonnes dans le tableau 1 en fonction des ID de colonne dans le tableau 2 ?
- Vous pouvez également créer un sous-ensemble du tableau 1, basé sur les ID de colonne du tableau 2 ?
Je pense que l'un ou l'autre de ces éléments m'aidera dans mon flux de travail, mais je n'ai pas trouvé de solution sur les forums ici ou dans le guide d'aide.
Merci d'avance!
Jonathan
Re : Filtrer les colonnes d'un tableau en fonction d'une listeSuper! Merci de m'avoir guidé à travers cela. Très utile!Re : Filtrer les colonnes d'un tableau en fonction d'une listeD'après mes tests, je pense que la liste est en cours de création, mais elle se perd dans le nombre de colonnes que vous avez.J'ai donc apporté une simple modification au code, en ajoutant un nom à la liste, puis en disant à la liste d'être déplacée au début de la liste des colonnes.
names default to here(1);
dt = Current Data Table();
dtSingle = open ("TCAlist.jmp");
//longList=dt<<GET column="" names=""></GET>Re : Filtrer les colonnes d'un tableau en fonction d'une listeRe : Filtrer les colonnes d'un tableau en fonction d'une listeSi vous pouvez joindre les 2 tableaux de données, je vais jeter un oeil à la question
Re : Filtrer les colonnes d'un tableau en fonction d'une listeIl n'y a donc aucun message/erreur qui s'affiche. Les colonnes sont correctement orthographiées et il n'y a pas de problème de casse. Lorsque je lance ceci, la deuxième partie du script fonctionne... il crée un sous-ensemble avec les 3 éléments répertoriés dans "TCAlist". La seule chose qui n'arrive pas est la création du groupe sur la table principale. Y a-t-il quelque chose qui ne va pas avec les premières lignes concernant mes tables ? Est-ce que la table de données actuelle s'en débarrasse ?Re : Filtrer les colonnes d'un tableau en fonction d'une listeQuels messages sont dans le journal ? Les colonnes sont-elles toutes correctement orthographiées ? Y a-t-il un problème de majuscules/minuscules ???Re : Filtrer les colonnes d'un tableau en fonction d'une listeMerci Jim!
J'ai pu faire fonctionner le script "créer un sous-ensemble" sur mes 2 tables de données, mais le "créer un groupe" sur ces 2 mêmes tables ne semble pas créer le groupe dans la table principale. Cela fonctionne bien sur l'exemple de données d'échantillon cependant. Il manque probablement quelque chose d'évident
Merci pour votre aide!
names default to here(1);
dt = Current Data Table();
dtSingle = Open ("TCAlist.jmp");
// Create a group
theList = dtSingle:Cols << get values;
dt << group columns(theList);
// Create a subset
// Select columns in data table dt, that are in dtSingle
try( dt << Select Columns( dtSingle:Cols << get values ));
dtSubset = dt << subset( selected rows(0), selected columns(1) );Re : Filtrer les colonnes d'un tableau en fonction d'une listeVoici un script simple qui vous montre les deux requêtes que vous avez spécifiées
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
dtSingle = New Table("Single Column", new column("Cols", character,values({"PNP2","NPN3","INM1"})));
// Create a group
theList = dtSingle:Cols << get values;
dt << group columns( theList);
// Create a subset
// Select columns in data table dt, that are in dtSingle
try( dt << Select Columns( dtSingle:Cols << get values ));
dtSubset = dt << subset( selected rows(0), selected columns(1) );