Création d'un sous-ensemble de données basé sur une liste de colonnesBonjour,
J'ai un gros fichier de données avec de nombreuses colonnes de données. Je voudrais créer un moyen automatisé de sous-ensembler les données brutes en fonction d'une liste de colonnes.
Si ce tableau est mes données brutes
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | dix |
| # | # | # | # | # | # | # | # | # | # |
| # | # | # | # | # | # | # | # | # | # |
et ma liste de colonnes que je voudrais sous-ensemble peut être [1,4,6,9]
Je veux générer un nouveau tableau qui ressemble à ceci
La raison pour laquelle je ne peux pas simplement coder en dur les colonnes à prendre est que la liste sera mise à jour de temps en temps, j'aimerais donc une manière plus mains libres de gérer cela.
Si j'ai besoin de fournir plus d'informations, faites-le-moi savoir.
Merci!
Re : Création d'un sous-ensemble de données basé sur une liste de colonneseval(evalexpr(
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(
As Column(expr(MT_Col_Names[1])), As Column(expr(MT_Col_Names[2])) ), Invisible);
));
Re : Création d'un sous-ensemble de données basé sur une liste de colonnesPeut-être essayer
eval(evalexpr((
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(
As Column(expr(MT_Col_Names[1])), As Column(expr(MT_Col_Names[2])) ), Invisible);
));
))
Re : Création d'un sous-ensemble de données basé sur une liste de colonnesJe ne pense pas qu'il soit nécessaire que vous énumériez tous les éléments que vous avez dans MT_Col_Names ou que vous les enveloppiez dans Column().Quel type de données se trouve dans « MT_Col_Names » ?
Voici un exemple fonctionnel avec une liste de chaînes représentant les noms des colonnes que je souhaite conserver :
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows({1,2,3});
sub_cols = {"name", "age", "sex"}; //same role as MT_Col_Names
dt2 = dt << Subset(selected rows(1), columns(sub_cols));Re : Création d'un sous-ensemble de données basé sur une liste de colonnesBonjour,
Cela ne fonctionne pas pour moi lorsque j'utilise :
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(Column(MT_Col_Names[1]), Column(MT_Col_Names[2]), Column(MT_Col_Names[3]), Column(MT_Col_Names[4]), Column(MT_Col_Names[5]), Column(MT_Col_Names[6])), Invisible);
L'erreur est :

Et si je change ' Colonnes' à 'En colonnes' , Cela fonctionne (pas d'erreur), mais toutes les colonnes s'affichent...
Merci pour toute aide,
Nir
Re : Création d'un sous-ensemble de données basé sur une liste de colonnesC'est probablement très simple, mais je suis confus au sujet de votre liste.Vous dites que vous ne pouvez pas coder en dur les colonnes à utiliser car cela changera, mais quelqu'un n'a-t-il pas besoin d'énumérer les colonnes à utiliser lorsque la liste sera mise à jour ?Sinon, d'où vient cette liste ? Si vous avez une variable juste en haut du script qui énumère toutes les colonnes à utiliser, est-ce suffisamment facile à gérer ?Si tel est le cas, voici un script simple qui fait cela :
//list of columns
subset_cols = {:Name("1"), :Name("4"), :Name("6"), :Name("9")};
dt = Current Data Table();
dt << Subset( All rows, columns( subset_cols ) )