[R] Dropping columns from data frame

David Winsemius dwinsemius at comcast.net
Fri Jan 6 16:49:01 CET 2012


On Jan 6, 2012, at 10:00 AM, Mike Harwood wrote:

> How does R do it, and should I ever be worried?  I always remove
> columns by index, and it works exactly as I would naively expect - but
> HOW?  The second illustration, which deletes non contiguous columns,
> represents what I do all the time and have some trepidation about
> because I don't know the mechanics (e.g. why doesn't the column
> formerly-known-as-4 become 3 after column 1 is dropped: doesn't vector
> removal from a df/list invoke a loop in C?).

You are NOT "removing columns". You are returning (to `head` and then  
to `print`) an extract from the dataframe, but that does not change  
the original dataframe. To effect a change you would need to assign  
the value back to the same name as the original daatframe.

-- 
David
>  Can I delete a named
> list of columns, which are examples 4 and 5 and which generate the
> "unary error' mesages, without resorting to "orig.df$num1.10 <- NULL"?
>
> Thanks!
>
> orig.df <- data.frame(cbind(
> 	1:10
> 	,11:20
> 	,letters[1:10]
> 	,letters[11:20]
> 	,LETTERS[1:10]
> 	,LETTERS[11:20]
> 	))
> names(orig.df) <- c(
> 	'num1.10'
> 	,'num11.20'
> 	,'lc1.10'
> 	,'lc11.20'
> 	,'uc1.10'
> 	,'uc11.20'
> 	)
> # Illustration 1: contiguous columns at beginning of data frame
> head(orig.df[,-c(1:3)])
>
> # Illustration 2: non-contiguous columns
> head(orig.df[,-c(1,3,5)])
>
> # Illustration 3: contiguous columns at end of data frame
> head(orig.df[,-c(4:6)]) 	## as expected
>
> # Illustrations 4-5: unary errors
> head(orig.df[,-c(as.list('num1.10', 'lc1.10', 'uc1.10'))])
> head(orig.df[,-c('num1.10', 'lc1.10', 'uc1.10')])
>
>
> Mike
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list