Vorrei rimuovere tutte le righe di un data.table
che contengono Inf
in una qualsiasi delle sue colonne. Finora, ho usato questo approccio:Rimuovere le righe con NA da data.table in R
DT <- data.table(col1 = c(1,2,3), col2 = c(4,Inf,5))
DT[,drop := apply(.SD, 1, function(x) any(is.infinite(x))), by = 1:nrow(DT)]
DT <- DT[(!drop)][,drop:=NULL]
che viene da this Stackoverflow question. Tuttavia, questo approccio non è ben scalabile per grandi quantità di dati. C'è un modo migliore per rimuovere le righe con Inf
?
può essere 'DT [DT [, Riduzione ('&', lapply (.SD, is.finite))]]' – akrun
interessante (?), L'esempio dato dal PO non funziona con versione 1.9.5, quando la soluzione @akrun funziona. –
Perché non utilizzare 'rowSums':' DT [is.finite (rowSums (DT))] ' – shadow