Eliminación de varias columnas según el nombre de la columnaHola ,
Quiero eliminar varias columnas en función de algunas cadenas específicas que contienen en el nombre de la columna. Puedo hacerlo por un solo nombre. Pero para múltiples nombres no funciona.
col_list = dt << obtener nombres de columnas (cadena);
for (i = nitems(col_list), i > 0, i--,
if (contiene(col_list[i], "SAVED_IMAGES", "sw_", "HH"),
quitar de(col_list, i);
);
);
muestra este error
dt = Tabla de datos actuales ();
col_list = dt << obtener nombres de columnas (cadena);
For( i = N Elementos( col_list ), i > 0, i--,
If( Contiene( col_list[i], "SAVED_IMAGES", "SS_EID"),
Eliminar de (col_list, i)
)
);
secuencias de comandosRe: Eliminar varias columnas según el nombre de la columnaAsí es como lo haría
col_list = dt << get column names( string );
For( i = N Items( col_list ), i > 0, i--,
If(
Not(
Contains( col_list[i], "SAVED_IMAGES" ) | Contains( col_list[i], "sw_" ) |
Contains( col_list[i], "HH" )
),
Remove From( col_list, i )
)
);
Re: Eliminar varias columnas según el nombre de la columnaEste script elimina las columnas que contienen esos nombres en las columnas. ¿Qué debo hacer si quiero mantener solo
esas columnas específicas (contiene esos nombres) y eliminar otras columnas?
Re: Eliminar varias columnas según el nombre de la columnaSi entiendo su pregunta, desea iterar tanto los nombres de las columnas como las cadenas para que coincidan:
col_list = dt << get column names(string);
remove_strings = {"SAVED_IMAGES", "sw_", "HH"};
//for each column name
for (i = nitems(col_list), i > 0, i--,
//for each string to match
for( j = 1, j <= N Items( remove_strings ), j++,
//if it matches remove the item
if( contains( col_list[i], remove_strings[j] ) > 0,
remove from(col_list, i);
);
);
);Re: Eliminar varias columnas según el nombre de la columnaCreo que la estructura que necesita usar para su comparación es:
if (contains(col_list[i], "SAVED_IMAGES") & contains(col_list[i], "sw_") &
contains(col_list[i], "HH"),