Seleccionar y eliminar columnas que contienen una cadena específicaHola amigos de jsl,
¿Alguien puede comentar sobre lo que está mal con mi codificación a continuación? Estoy tratando de buscar columnas que contengan una cadena llamada "Dummy" y tratando de eliminarla, pero no funciona. Ayuda por favor.
Nombres predeterminados aquí (1);
dt = Nueva tabla ("Ejemplo",
Agregar filas (3),
Nueva columna ("A_Dummy", Carácter, "Nominal", Establecer valores ({"xx", "yy", "zz"})),
Nueva columna ("B", Carácter, "Nominal", Establecer valores ({"a", "b", "c"})),
Nueva columna ("C_Dummy", Carácter, "Nominal", Establecer valores ({"l", "m", "n"})));
cols = dt << obtener nombres de columna (cadena);
Si (Contiene (cols, "Dummy"),
dt << Seleccionar columnas ();
dt << Eliminar columnas ());
ScriptingRe: seleccionar y eliminar columnas que contienen cadenas específicasSolo para agregar ... La razón por la que pregunto esto es porque me gustaría saber si hay un montón de nombres de columna como, por ejemplo, 50 columnas que contienen "_Dummy", ¿cómo puedo eliminarlo de forma alterna sin tener que nombrar el nombres de columna específicos mediante el comando de eliminar columnas conocido como "dt << eliminar columna (columna (" A_Dummy "))". Si tengo que usar este comando, tendré que escribir 50 veces todos los nombres de columna únicos.
Re: seleccionar y eliminar columnas que contienen cadenas específicasContiene solo le dará el primer índice de una coincidencia. Puede recorrer la lista para generar una lista con columnas para eliminar o eliminar mientras recorre:
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) ));<BR />
cols = dt << get column names( string );
for(i = 1, i <= N Items(cols), i++,
If(Contains(cols[i],"Dummy"),
dt << Delete Columns(cols[i])
);
);Re: seleccionar y eliminar columnas que contienen cadenas específicasEsta es una versión modificada que puede funcionar para usted y que es fácil de entender.
Necesitaría un bucle sobre las columnas para ver dónde está la cadena de caracteres,
y su uso de seleccionar y eliminar no fue correcto.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
cols = dt << get column names( string );
delete_lst = {};
For( i = 1, i <= N Items( cols ), i++,
If( Contains( cols[i], "Dummy" ),
Insert Into( delete_lst, cols[i] )
)
);
dt << Delete Columns( delete_lst );