[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