[R] Drop column from a data frame

Phil Spector spector at stat.berkeley.edu
Mon Dec 27 07:32:34 CET 2010


John -
    You can use a syntax similar to what you've tried with
the select= argument of the subset function:

> subset(dfxyz,select=-y)
     x z
1   1 0
2   2 0
   . . .
> subset(dfxyz,select=-z)
     x  y
1   1 11
2   2 12
   . . .


 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Sun, 26 Dec 2010, John Sorkin wrote:

> I am trying to drop a column of a data frame. The code below attempts to drop a numeric column (which does not work but gives no error or warning) and a factor column (which does not work but gives an error).
> I would appreciate someone telling me why my code does not work, and suggesting code that will work.
> Thanks,
> John
>
> rm(dfxyz,dfxz,dfxy)
>
> # create the data frame.
> dfxyz <- data.frame(x=1:10,y=11:20,z=factor(c(rep(0,5),rep(1,5))))
> dfxyz
>
> names(dfxyz)
>
> # try to drop y column
> # does not work, does not produce error message
> dfxz <- dfxyz[,-(dfxyz$y)]
> dfxz
>
> # try to drop z column
> # does not work, produces error message:
> # In Ops.factor(df$z) : - not meaningful for factors
> dfxy <- dfxyz[,-dfxyz$z]
> dfxy
>
>
>
> John David Sorkin M.D., Ph.D.
> Chief, Biostatistics and Informatics
> University of Maryland School of Medicine Division of Gerontology
> Baltimore VA Medical Center
> 10 North Greene Street
> GRECC (BT/18/GR)
> Baltimore, MD 21201-1524
> (Phone) 410-605-7119
> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>
> Confidentiality Statement:
> This email message, including any attachments, is for th...{{dropped:6}}
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list