Seleziona ed elimina le colonne che contengono una stringa specificaCiao ragazzi jsl,
Qualcuno può commentare cosa c'è di sbagliato nella mia codifica qui sotto? Sto cercando di cercare colonne che contengono una stringa chiamata "Dummy" e sto provando a cancellarla ma non funziona. Pls aiuto.
Nomi predefiniti fino a qui (1);
dt = Nuova tabella ("Esempio",
Aggiungi righe (3),
Nuova colonna ("A_Dummy", Character, "Nominal", Set Values ({"xx", "yy", "zz"})),
Nuova colonna ("B", carattere, "Nominale", Imposta valori ({"a", "b", "c"})),
Nuova colonna ("C_Dummy", Character, "Nominal", Set Values ({"l", "m", "n"})));
cols = dt << ottiene i nomi delle colonne (stringa);
Se (contiene (cols, "Dummy"),
dt << Seleziona colonne ();
dt << Elimina colonne ());
ScriptingRi: Seleziona ed elimina le colonne che contengono una stringa specificaSolo per aggiungere ... Il motivo per cui lo chiedo è perché mi piacerebbe sapere se ci sono un gruppo di nomi di colonne come ad esempio 50 colonne che contengono "_Dummy", come posso cancellarlo di nascosto senza dover nominare il nomi di colonna specifici utilizzando il comando noto di eliminazione delle colonne come "dt << elimina colonna (colonna (" A_Dummy "))". Se devo usare questo comando, dovrei digitare 50 volte tutti i nomi di colonna univoci.
Ri: Seleziona ed elimina le colonne che contengono una stringa specificaContiene ti darà solo il primo indice di una corrispondenza. Puoi scorrere l'elenco per generare un elenco con colonne da eliminare o eliminare durante il ciclo:
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])
);
);Ri: Seleziona ed elimina le colonne che contengono una stringa specificaQuesta è una versione modificata che potrebbe funzionare per te ed è facile da capire.
Avresti bisogno di un ciclo sulle colonne per vedere dove si trova la stringa di caratteri,
e il tuo utilizzo di seleziona ed elimina non era corretto.
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 );