Bonjour la communauté,
je veux juste apprendre à trouver un numéro de colonne dans JMP.
J'ai essayé d'utiliser Column Info, mais cette information n'est pas là. Je peux taper un numéro de colonne dans Cols> Sélection de colonne> Aller à .. , mais je ne veux pas essayer de deviner.
Parce que je veux utiliser le numéro de colonne dans mon script pour le parcourir (par exemple de la colonne 120 à 130). Mais pour cela, j'avais besoin de savoir que ma colonne de départ (dans mon cas "I_nA_3_m30_NS") était située sur la colonne 120..
Merci pour toute aide.
Si vous souhaitez autoriser des correspondances partielles sur plusieurs colonnes, vous pouvez laisser 'FilterColSelector()' faire une partie du travail :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
allCols = dt << getColumnNames("String");
fcs = Filter Col Selector( << nameContains("eight"));
matchingCols = fcs << getItems;
fcs << delete;
matchingColNumbers = [];
for(c=1, c<=NItems(matchingCols), c++, matchingColNumbers = matchingColNumbers||Loc(allCols, matchingCols[c]));
Print(matchingColNumbers);Salut,
Bonne prise: la méthode que j'ai suggérée suppose que vous recherchez le nom complet de la colonne cible, ce qui n'est pas valide dans votre cas où vous recherchez une sous-chaîne.
Laisse moi y réfléchir.
Meilleur,
TS
La fonction Contient(), lorsqu'elle est utilisée pour comparer une liste JMP, ne renvoie que des correspondances exactes.Si vous avez besoin de rechercher en interne chaque élément de la liste, vous devrez faire quelque chose comme :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
cols = dt << get column names( string );
text = "wei";
For( i = 1, i <= N Items( cols ), i++,
tcol = Contains( cols[i], text );
If( tcol > 0,
tcol = i;
Break();
);
);
Show( tcol );
Merci pour votre réponse, c'est une bonne idée, mais cela n'a pas fonctionné pour moi, mon tcol était de 0.
Voici la variable cols (un autre tableau que la question d'origine):
{"Tag", "FitA_ 1", "FitA_ 2", "FitA_ 3", "FitA_ 4", "FitA_ 5", "FitA_ 6", "FitA_ 7", "FitA_ 8", "FitA_ 9", "FitA_10", "FitA_11", "FitA_12", "FitB_ 1", "FitB_ 2", "FitB_ 3", "FitB_ 4", "FitB_ 5", "FitB_ 6", "FitB_ 7", "FitB_ 8 ", "FitB_ 9", "FitB_10", "FitB_11", "FitB_12", "F", "H_ 1", "H_ 2", "H_ 3", "H_ 4", "H_ 5", "H_ 6", "H_ 7", "H_ 8", "H_ 9", "H_10", "H_11", "H_12", "V2_ 1", "V2_ 2", "V2_ 3", "V2_ 4", "V2_ 5", "V2_ 6", "V2_ 7", "V2_ 8", "V2_ 9", "V2_10", "V2_11", "V2_12", "V3_ 1", "V3_ 2", "V3_ 3 ", "V3_ 4", "V3_ 5", "V3_ 6", "V3_ 7", "V3_ 8", "V3_ 9", "V3_10", "V3_11", "V3_12", "NAT"}
et j'ai essayé avec text = "FitB"
mais tcol était de 0
Une façon d'aborder cela est:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNumber = Contains( dt << get column names( string ), "height" );
Show( colNumber );
Salut,
Voici une méthode pour renvoyer la position relative de la première colonne correspondant à un modèle de texte (à mes soins "VISIT") :
Names default to here (1);
dt = current data table ();
cols = dt << get column names (string);
text = "VISIT";
tcol = contains (cols, text);
show (tcol);
Faites-nous savoir si cela fonctionne pour vous.
Meilleur,
TS