# [R] Delete Columns with zeros

Gavin Simpson gavin.simpson at ucl.ac.uk
Thu Jan 31 17:19:40 CET 2008

```hits=-2.6 testsºYES_00
X-USF-Spam-Flag: NO

On Thu, 2008-01-31 at 15:33 +0100, Jens Oldeland wrote:
> Hi,
>
> I know there have been some discussions on that topic. all their
> solutions failed in my case...
> My problem is that I have a dataframe with many zeros. but while
> plotting they are not useful.
> so I want to get rid of column 1,3,4,......,n i have 628 columns 1000
> rows, so I canÂ´t look manually for the "empty" columns.
>
> Any possible Ideas?
>
>  > A250[1:5,1:4]
>
> A1100 0 0.0 0 0
> A20100 0 0.1 0 0
> A20200 0 0.0 0 0
> A400 0 1.0 0 0
> A4100 0 0.0 0 0
>
> I also didnÂ´t find anything useful in "An Introduction to R".

You can use colSums() to get the column sums and then evaluate which are
greater than 0, and keep only those.

## example data
> dat <- data.frame(x = rep(0, 10), y = runif(10), z = rep(0, 10), a = rnorm(10))
> dat
x          y z           a
1  0 0.49300402 0 -0.04405118
2  0 0.59786017 0 -2.06150000
3  0 0.08937639 0 -0.48804730
4  0 0.81220978 0  0.89746064
5  0 0.08846686 0  1.89563799
6  0 0.11141525 0 -0.16550292
7  0 0.25976990 0  1.02780712
8  0 0.55836579 0 -1.19074561
9  0 0.19798582 0  0.29130921
10 0 0.65826305 0  1.29665594
> colSums(dat)
x        y        z        a
0.000000 3.866717 0.000000 1.459024
> colSums(dat) > 0
x     y     z     a
FALSE  TRUE FALSE  TRUE
> dat[, colSums(dat) > 0]
y           a
1  0.49300402 -0.04405118
2  0.59786017 -2.06150000
3  0.08937639 -0.48804730
4  0.81220978  0.89746064
5  0.08846686  1.89563799
6  0.11141525 -0.16550292
7  0.25976990  1.02780712
8  0.55836579 -1.19074561
9  0.19798582  0.29130921
10 0.65826305  1.29665594

HTH

G

>
> thank you
>
> Jens
>
--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

```