Seleziona ed elimina le colonne che contengono una stringa specificaCiao gente di JSL,
Qualcuno può commentare cosa c'è che non va nella mia codifica qui sotto? Sto cercando colonne che contengono una stringa chiamata "Dummy" e provo a eliminarla ma non funziona. Per favore aiutatemi.
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 );
If( Contains( cols, "Dummy" ),
dt << Select Columns();
dt << Delete Columns();
);
Combinazione e pulizia dei datiRi: Selezionare ed eliminare le colonne che contengono una stringa specificaFunziona ! Grazie per la soluzione, Georg!Ri: Selezionare ed eliminare le colonne che contengono una stringa specificaEccellente, funziona perfettamente! Grazie !Ri: Selezionare ed eliminare le colonne che contengono una stringa specificaCiao Jthi, grazie per aver cercato di aiutare. Ho scoperto che lo script elimina effettivamente tutte le colonne indipendentemente dalla presenza o meno della stringa "fittizia". Ad ogni modo, Georg e Pauldeen hanno già fornito la soluzione.Ri: Selezionare ed eliminare le colonne che contengono una stringa specificaLeggera modifica per eliminare la necessità di una variabile di lista aggiuntiva:
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 );
For( i = N Items( cols ), i>=1, i--,
If( Contains( cols[i], "Dummy" ),
dt << Delete Columns( i );
)
);
Ri: Selezionare ed eliminare 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 l'utilizzo della selezione e dell'eliminazione 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 );Ri: Selezionare ed eliminare le colonne che contengono una stringa specificaContiene ti fornirà solo il primo indice di una corrispondenza. Puoi eseguire il loop dell'elenco per generare un elenco con le colonne da eliminare o eliminare durante il loop:
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: Selezionare ed eliminare le colonne che contengono una stringa specificaGiusto per aggiungere qualcosa... Il motivo per cui lo chiedo è perché mi piacerebbe sapere se ci sono un sacco di nomi di colonne come ad esempio 50 colonne che contengono "_Dummy", come posso eliminarlo rapidamente senza dover nominare il file nomi di colonne specifici utilizzando comandi di eliminazione colonne noti come "dt << elimina colonna(column("A_Dummy"))". Se devo utilizzare questo comando, dovrei digitare 50 volte tutti i nomi di colonna univoci.