Wacek Kusnierczyk wrote: > > as above, this works as well: > > df[, vars] = list(NULL) > > and this, simplest of them all, works too: > > df[vars] = list(NULL)
That's actually a curious anomaly/design-flaw/whatever... The "usual" rule is that you can treat data frames as lists, but > aq <- as.list(head(airquality)) > aq[2:4] <- list(NULL) > aq $Ozone [1] 41 36 12 18 NA 28 $Solar.R NULL $Wind NULL $Temp NULL $Month [1] 5 5 5 5 5 5 $Day [1] 1 2 3 4 5 6 > aq[2:4] <- NULL > aq $Ozone [1] 41 36 12 18 NA 28 $Month [1] 5 5 5 5 5 5 $Day [1] 1 2 3 4 5 6 #------------- whereas > aq <- head(airquality) > aq[2:4] <- NULL Error in `[<-.data.frame`(`*tmp*`, 2:4, value = NULL) : replacement has 0 items, need 18 > aq[2:4] <- list(NULL) > aq Ozone Month Day 1 41 5 1 2 36 5 2 3 12 5 3 4 18 5 4 5 NA 5 5 6 28 5 6 It is not too strange that assigning list(NULL) differs since you can't have NULL columns in a data frame. It's more odd that assigning NULL to a set of variables fails to delete them. Not sure what the rationale (if any) for that might be. -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalga...@biostat.ku.dk) FAX: (+45) 35327907 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.