You're right. The help page is somewhat misleading at first read. ?`[<-.data.frame` states that (with added emphasis)
value A suitable replacement value: it will be repeated a whole number of times if necessary and it may be coerced: see the Coercion section. *** If NULL, deletes the column if a single column is selected. *** So I read this to mean that a NULL value works only if a single column is selected. But the Details gives the rest of the story: For [ the replacement value can be a list: each element of the list is used to replace (part of) one column, recycling the list as necessary. If columns specified by number are created, the names (if any) of the corresponding list elements are used to name the columns. *** If the replacement is not selecting rows, list values can contain NULL elements which will cause the corresponding columns to be deleted. *** -Christos > -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Stavros Macrakis > Sent: Tuesday, February 24, 2009 4:47 PM > To: Sean Zhang > Cc: r-help@r-project.org > Subject: Re: [R] how to NULL multiple variables of a df efficiently? > > 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) 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)) > > Hope this helps, > > -s > > ______________________________________________ > 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. > > ______________________________________________ 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.