[R] How to select a whole column? Thanks!

Prof Brian Ripley
2004-08-03T08:55:01Z

On Tue, 3 Aug 2004, Jinsong Zhao wrote:

> I hope to remove a whole column from a data frame or matrix (> 2000
> columns). All value in the column are same. The first thing is to
> select those columns.
>
> For instance, I hope to remove the V3~6 column, for all the value in
> those colume is zero.
>
>   V3 V4 V5 V6     V7     V8     V9    V10
> 1  0  0  0  0  0.000  0.000  0.000  0.000
> 2  0  0  0  0  0.000  0.000  0.000  0.000
> 3  0  0  0  0  0.000  0.000  0.000  0.000
> 4  0  0  0  0  0.000  0.000  0.000  0.000
> 5  0  0  0  0  0.000  0.000  0.000  0.000
> 6  0  0  0  0 -0.001 -0.001 -0.001 -0.001
> 7  0  0  0  0  0.000  0.000  0.000 -0.001
> 8  0  0  0  0  0.000  0.000  0.000 -0.001
> 9  0  0  0  0 -0.009 -0.012 -0.015 -0.018
>
> I mean how to select the first four columns.

mydf2 <- mydf[-(1:4)]

If you wanted to remove all columns which were entirely zero, you could
use

cols <- sapply(mydf, function(x) all(x == 0))
mydf2 <- mydf[!cols]

> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

which suggests you read `An Introduction to R', and that covers this and
more.


--
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595