Domanda JSL: seleziona le colonne e sostituisci i valori mancanti con zeroCIAO,
Ci sono molte colonne numeriche nella tabella dati e tutte hanno valori mancanti.
Voglio selezionarne solo alcuni (considerando che conosco già i nomi delle colonne) e sostituire i valori mancanti con zero.
Ho scritto il codice come segue, ma non funziona.
Potresti aiutare?
Grazie!
dt = data table("Untitled 9");
col_list = {"A","B"};
For( i = 1, i <= N Items( col_list ), i++,
col_list[i][dt << get rows where( Is Missing( col_list[i][]) )] = 0);Oggetto: domanda JSL: seleziona le colonne e sostituisci i valori mancanti con zeroHo usato in passato l'opzione cerca/sostituisci:
Seleziona la colonna che vuoi sostituire mancante per zero
Cercare . e sostituisci con 0, assicurati di selezionare l'opzione "cerca solo nella colonna selezionata".
Oggetto: domanda JSL: seleziona le colonne e sostituisci i valori mancanti con zeroIl mio metodo sostituirà i valori mancanti in tutti numerico colonne. Se vuoi solo sostituire i valori nel tuo elenco specifico, basta fornire
col_list = {"A", "B"}
al posto della mia definizione di col_list.
Oggetto: domanda JSL: seleziona le colonne e sostituisci i valori mancanti con zeroGrazie. Ma nel tuo metodo sostituisci ancora i valori mancanti in tutte le colonne. Quello che sto cercando di fare è: diciamo che ci sono 10 colonne numeriche e tutte hanno valori mancanti. Ma voglio solo sostituire i valori mancanti in determinate colonne ("A" e "B" nel mio esempio). Ecco perché nel mio messaggio originale ho usato col_list = {"A","B"}, ma per qualche motivo non funziona....Oggetto: domanda JSL: seleziona le colonne e sostituisci i valori mancanti con zeroEcco un modo per farlo:
dt = New Table( "Test Zeroes", Add Rows( 3 ),
New Column( "Column 1", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "Column 2", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, ., 3] ) ),
New Column( "Column 3", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., 2, .] ) )
);
col_list = dt << get column names(string, numeric);
For( i = 1, i <= N Items( col_list ), i++,
missing_rows = dt << get rows where (is missing(as column(dt, col_list[i])));
if (nrows(missing_rows) > 0,
column(dt, col_list[i])[missing_rows] = 0;
);
);