Seleccionar columnas basadas en palabras contenidas en el encabezadoTengo un análisis que me gustaría realizar, pero necesito seleccionar varias columnas en función de las palabras contenidas en el encabezado antes de poder hacerlo. Actualmente, lo hago manualmente, pero es terriblemente lento y puedo perder algunas columnas. no tengo cuidado
en el ejemplo de la imagen, me gustaría seleccionar las 2 columnas que comienzan con 'Qué colores' pero ninguna de las otras 4. Se pueden repartir entre otras columnas y el número de ellos será diferente por experimento. Una vez seleccionados, puedo extraerlos y realizar el análisis.
Esto debe hacerse automáticamente sin ninguna entrada de usuario involucrada y no puedo encontrar ningún jsl que haga esto, pero estoy seguro de que debe existir, es solo que no he podido encontrarlo o no sé el correcto término de guión.

Saludos
David
Tabla de datosOtrosecuencias de comandosRe: Seleccionar columnas basadas en palabras contenidas en el encabezado¡Gracias!Re: Seleccionar columnas basadas en palabras contenidas en el encabezadoLa función Contiene () no devuelve un booleano de 0 o 1, devuelve la ubicación del carácter donde se encontró la comparación.
Intenta usar
Contains( colList[i], "N" ) > 0
Re: Seleccionar columnas basadas en palabras contenidas en el encabezadoEstoy tratando de usar este script para seleccionar columnas que contienen una cadena en medio del nombre de la columna.Cuando pongo "P" o "PN" en contiene() funciona, pero no cuando inserto "N" o "NP" o "NP3".
Gracias
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
//Left( colList[i], 2 ) == "PN" ,
// or it could be
Contains( colList[i], "N" ) == 1
,
Column( dt, colList[i] ) << set selected
)
);
Re: Seleccionar columnas basadas en palabras contenidas en el encabezadomuchas gracias, esto funciona perfectamente
Re: Seleccionar columnas basadas en palabras contenidas en el encabezadoNo creo que esto agregue nada dado el requisito de 'sin entrada del usuario'. Pero quería aprovechar la oportunidad para mencionar que el filtrado de columnas es bastante útil cuando se trabaja de forma interactiva (y es fácil pasarlo por alto). A veces, las personas usan scripts porque piensan que es "difícil" a través de la interfaz de usuario.
El 'Filter Col Selector' también es programable:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example", fcs = Filter Col Selector( DataTable("Big Class") ));
// See what messages the 'Filter Col Selector' understands
ShowProperties(fcs);
// Try it out
Print(fcs << GetItems);
Wait(3);
fcs << NameContains("ei");
Print(fcs << getItems);Re: Seleccionar columnas basadas en palabras contenidas en el encabezadoAquí hay una forma muy simple de hacer lo que está solicitando, y se puede expandir a requisitos mucho más complejos
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = dt << get column names( string );
dt << clear column selection;
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
Left( colList[i], 2 ) == "PN" ,
// or it could be
// contains( colList[i], "PN") == 1,
Column( dt, colList[i] ) << set selected
)
);
If( N Items( dt << get selected columns ) > 0,
dtSelected = dt << subset( selected rows( 0 ), selected columns( 1 ) )
);