Hola,
Tengo un problema en el que tengo tantas columnas que quiero seleccionar, pero no quiero escribirlas todas para crear un nuevo subconjunto de ellas.
Lo que tengo son 200 columnas que comienzan todas con la misma cadena. Me preguntaba si hay alguna forma de seleccionar estas columnas con un bucle o algún comando.
He intentado usar la línea:
cols = dt << Get Column Names(Starts With("Year"));
Pero si solo obtiene el nombre de cada columna, y tengo algunas columnas que no comienzan con "Año" o incluso tienen "Año" en el nombre. En este momento estoy haciendo un nuevo subconjunto de las columnas que quiero con:
dt2 = dt << Subset(
All rows,
columns(
:Time,
:Day,
:Name("Year 1"),
:Name("Year 2"),
:Name("Year 3"),
.
.
.
etc.
),
output table name("All Years")
);
Hay muchas otras columnas en mi tabla, pero solo quiero separarlas. ¡Por favor ayuda!
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gracias PMroz, ¡eso funcionó muy bien!
Y ese es un buen blog Dave, ¡gracias por el enlace!
Este código hará el truco.Buen blog Dave, por cierto!
dt = New Table( "Year Example",
Add Rows( 3 ),
New Column( "ABC", Numeric, Continuous, Format( "Best", 12 ), Set Values( [1, 2, 3] ) ),
New Column( "DEF", Numeric, Continuous, Format( "Best", 12 ), Set Values( [4, 5, 6] ) ),
New Column( "Year 1", Numeric, Continuous, Format( "Best", 12 ), Set Values( [7, 8, 9] ) ),
New Column( "Year 2", Numeric, Continuous, Format( "Best", 12 ), Set Values( [10, 11, 12] ) ),
New Column( "Year 3", Numeric, Continuous, Format( "Best", 12 ), Set Values( [13, 14, 15] ) )
);
col_list = dt << get column names(string);
for (i = nitems(col_list), i > 0, i--,
if (!contains(col_list[i], "Year"),
remove from(col_list, i);
);
);
dt << Subset(
Output Table( "Year Subset" ),
All rows,
columns( eval(col_list) )
);