Mam następujący przykład:Usuwanie kolumny data.table wewnątrz funkcji
irisDT <- as.data.table(iris)
mod <- function(dat) {
dat[, index:=(1:nrow(dat))]
setkey(dat, index)
dat <- dat[2:10]
dat[, index:=NULL]
invisible()
}
mod(irisDT)
names(irisDT) # it contains index
Ku mojemu zaskoczeniu, kolumna indeksu wciąż istnieje po wywołaniu funkcji mod()
. Nie dzieje się tak, gdy usuwam linię dat <- dat[2:10]
. Domyślam się, że ponieważ wiersze nie mogą być usunięte przez odniesienie jeszcze, tworzony jest inny data.table. Chciałbym jednak usunąć kolumnę indeksu w oryginalnym pliku data.table.
Proszę nie rozpoczynać tytułu od "R:"; do tego służą znaczniki. –
+1 trafił dziś w 100% w ten sam problem. – Beasterfield