Crear un subconjunto de datos basado en una lista de columnasHola,
Tengo un archivo de datos grande con muchas columnas de datos. Me gustaría crear una forma automatizada de subconjuntos de datos sin procesar en función de una lista de columnas.
Si esta tabla son mis datos sin procesar
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| # | # | # | # | # | # | # | # | # | # |
| # | # | # | # | # | # | # | # | # | # |
y mi lista de columnas que me gustaría subconjunto puede ser [1,4,6,9]
Quiero generar una nueva tabla que se vea así
La razón por la que no puedo simplemente codificar qué columnas tomar es que la lista se actualiza de vez en cuando, por lo que me gustaría tener una forma más sencilla de lidiar con esto.
Si necesito proporcionar más información háganmelo saber.
¡Gracias!
Re: Crear un subconjunto de datos basado en una lista de columnaseval(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: Crear un subconjunto de datos basado en una lista de columnasTal vez intente
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: Crear un subconjunto de datos basado en una lista de columnasNo creo que sea necesario que enumeres todos los elementos que tienes en MT_Col_Names o que los envuelvas en Column().¿Qué tipo de datos hay dentro de "MT_Col_Names"?
Aquí hay un ejemplo funcional con una lista de cadenas que representan los nombres de las columnas que quiero conservar:
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: Crear un subconjunto de datos basado en una lista de columnasHola,
Esto no me funciona cuando uso:
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);
El error es:

Y si cambio' columnas a 'Como columnas' , Funciona (sin errores), pero aparecen todas las columnas...
Gracias por cualquier ayuda,
Nir
Re: Crear un subconjunto de datos basado en una lista de columnasProbablemente esto sea muy fácil, pero estoy confundido acerca de tu lista.Dice que no puede codificar qué columnas usar porque cambiará, pero ¿no es necesario que alguien en última instancia enumere las columnas que se usarán cuando se actualice la lista?De lo contrario, ¿de dónde viene esa lista? Si tiene una variable justo en la parte superior del script que enumera todas las columnas a usar, ¿es suficientemente fácil de mantener?Si es así, aquí hay un script simple que hace eso:
//list of columns
subset_cols = {:Name("1"), :Name("4"), :Name("6"), :Name("9")};
dt = Current Data Table();
dt << Subset( All rows, columns( subset_cols ) )