Hola comunidad,
Sólo quiero aprender cómo encontrar un número de columna en JMP.
Intenté usar Información de columna, pero esta información no aparece. Puedo escribir un número de columna en Cols > Selección de columnas > Ir a... , pero no quiero intentar adivinar.
Porque quiero usar el número de columna en mi secuencia de comandos para recorrerlo (por ejemplo, de la columna 120 a 130). Pero para esto necesitaba descubrir que mi columna inicial (en mi caso "I_nA_3_m30_NS") estaba ubicada en la columna 120.
Gracias por cualquier ayuda.
Si desea permitir coincidencias parciales en varias columnas, puede dejar que 'FilterColSelector()' haga parte del trabajo:
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);Hola,
Buen truco: el método que sugerí supone que busca el nombre completo de la columna de destino, lo cual no es válido en su caso en el que busca una subcadena.
Déjame pensar en ello.
Mejor,
TS
La función Contiene(), cuando se utiliza para comparar una lista JMP, devuelve solo coincidencias exactas.Si necesita buscar internamente cada elemento de la lista, deberá hacer algo como:
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 );
Gracias por tu respuesta, es una buena idea, pero no me funcionó, mi tcol era 0.
Aquí está la variable cols (otra tabla además de la pregunta original):
{"Etiqueta", "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"}
y lo intenté con texto = "FitB"
pero tcol era 0
Una forma de abordar esto es:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNumber = Contains( dt << get column names( string ), "height" );
Show( colNumber );
Hola,
Aquí hay un método para devolver la posición relativa de la primera columna que coincide con un patrón de texto (a mi cuidado "VISITA"):
Names default to here (1);
dt = current data table ();
cols = dt << get column names (string);
text = "VISIT";
tcol = contains (cols, text);
show (tcol);
Déjanos saber si eso funciona para ti.
Mejor,
TS