Stavros Macrakis wrote: > On Tue, Feb 24, 2009 at 3:10 PM, Sean Zhang wrote: > >> ...Want to delete many variables in a dataframe.... >> df<-data.frame(var.a=rnorm(10), var.b=rnorm(10),var.c=rnorm(10)) >> df[,'var.a']<-NULL #this works for one single variable >> df[,c('var.a','var.b')]<-NULL #does not work for multiple variables >> > > Actually, setting to NULL works fine for multiple variables, but you > need one NULL per variable: > > >> df[,c("var.a","var.b")] <- list(NULL,NULL) >>
actually, you need one NULL per variable, but it suffices to provide a list of *one* NULL, and it will be recycled: df[,c("var.a","var.b")] <- list(NULL) >> df >> > var.c > 1 1.2470314 > 2 -0.7075917 > 3 -1.3959612 > > If the variable list is in a variable: > > >> vars <- c("var.a","var.c") >> > > Careful, rep requires a *list* of NULL, not an element: > > >> df[,vars] <- rep(list(NULL),length(vars)) >> as above, this works as well: df[, vars] = list(NULL) and this, simplest of them all, works too: df[vars] = list(NULL) vQ ______________________________________________ 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.