Re: [R] Removing rows with rowsums==0 (I can't figure this out)

From: Gavin Simpson <gavin.simpson_at_ucl.ac.uk>
Date: Thu, 20 Nov 2008 17:08:29 +0000

On Thu, 2008-11-20 at 12:01 -0500, stephen sefick wrote:
> ##I want to remove the rows where the row sums are zero and this is as
> far as I have gotten

Given your ffg,

## the which() call returns row indices for rows with rowSum > 0 ffg[which(rowSums(ffg) > 0, ]

does the trick

HTH G

>
> ffg <- (structure(list(CD = c(0, 0, 0, 0, 3.125, 0, 0, 0, 0, 1.6, 3.125,
> 0, 0, 6.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.125, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 3.125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 12.5, 3.125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.125, 9.375, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0), GC = c(123.2, 93.75, 12.5, 0, 56.25,
> 184.375, 28.125, 109.375, 0, 779.2, 190.625, 59.375, 0, 1537.5,
> 2340.625, 1603.125, 481.25, 334.375, 0, 0, 9.375, 312.5, 109.375,
> 0, 1081.25, 1346.875, 553.125, 171.875, 78.125, 0, 0, 99.2, 221.875,
> 3.125, 0, 871.875, 1809.375, 606.25, 71.875, 37.5, 0, 0, 0, 20.8,
> 159.375, 59.375, 0, 84.375, 187.5, 84.375, 46.875, 37.5, 0, 0,
> 0, 9.6, 75, 3.125, 0, 159.375, 150, 46.875, 143.75, 343.75, 0,
> 0, 0, 120, 18.75, 6.25, 0, 181.25, 237.5, 28.125, 62.5, 128.125,
> 0, 0, 0, 78.4, 0, 3.125, 3.125, 12.5, 6.25, 18.75, 0, 25, 103.125,
> 68.75, 46.875, 0, 290.625, 225, 84.375, 62.5, 137.5, 0, 0, 0,
> 252.8, 28.125, 9.375, 0, 796.875, 225, 37.5, 3.125, 431.25, 0,
> 0, 0, 12.5, 21.875, 6.25, 0, 37.5, 296.875, 56.25, 65.625, 65.625,
> 0, 0, 0, 25, 103.125, 0, 184.375, 346.875, 240.625, 46.875, 246.875
> ), GF = c(118.4, 43.75, 9.375, 0, 9.375, 12.5, 9.375, 43.75,
> 0, 190.4, 56.25, 18.75, 0, 31.25, 134.375, 325, 93.75, 25, 0,
> 0, 0, 0, 0, 0, 2278.125, 1115.625, 1834.375, 762.5, 15.625, 0,
> 0, 33.6, 31.25, 0, 0, 25, 543.75, 225, 3.125, 18.75, 0, 0, 0,
> 17.6, 3.125, 3.125, 0, 0, 21.875, 0, 0, 3.125, 0, 0, 0, 0, 0,
> 0, 0, 9.375, 0, 0, 6.25, 21.875, 0, 0, 0, 6.4, 0, 0, 0, 21.875,
> 12.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62.5, 412.5,
> 15.625, 0, 87.5, 100, 6.25, 6.25, 0, 0, 0, 0, 14.4, 3.125, 0,
> 0, 90.625, 6.25, 0, 0, 506.25, 0, 0, 0, 25, 25, 0, 0, 0, 59.375,
> 18.75, 31.25, 6.25, 0, 0, 0, 3.125, 0, 0, 37.5, 3.125, 6.25,
> 0, 25), P = c(0, 0, 0, 0, 0, 0, 3.125, 0, 0, 3.2, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 12.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19.2, 0,
> 0, 0, 0, 0, 6.25, 0, 0, 0, 0, 0, 6.4, 0, 0, 0, 6.25, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.125, 0, 0, 0, 0, 0, 3.125,
> 0, 0, 0, 0, 0, 3.125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 9.375, 0), PR = c(27.2, 15.625, 18.75, 0, 21.875, 62.5, 78.125,
> 25, 0, 92.8, 6.25, 9.375, 0, 68.75, 78.125, 100, 37.5, 106.25,
> 0, 0, 31.25, 21.875, 0, 0, 150, 268.75, 534.375, 31.25, 3.125,
> 0, 0, 43.2, 9.375, 0, 0, 21.875, 128.125, 87.5, 12.5, 3.125,
> 0, 0, 0, 16, 12.5, 3.125, 0, 59.375, 65.625, 37.5, 6.25, 3.125,
> 0, 0, 0, 12.8, 6.25, 0, 6.25, 28.125, 21.875, 9.375, 6.25, 28.125,
> 0, 0, 0, 16, 15.625, 3.125, 0, 43.75, 75, 6.25, 12.5, 18.75,
> 0, 0, 0, 1.6, 0, 0, 0, 3.125, 0, 0, 9.375, 0, 37.5, 25, 6.25,
> 0, 28.125, 118.75, 53.125, 68.75, 40.625, 0, 0, 0, 72, 0, 0,
> 0, 218.75, 71.875, 115.625, 9.375, 43.75, 0, 0, 0, 25, 3.125,
> 18.75, 6.25, 34.375, 84.375, 31.25, 3.125, 15.625, 0, 0, 0, 12.5,
> 3.125, 0, 53.125, 150, 56.25, 0, 6.25), SC = c(105.6, 93.75,
> 200, 0, 256.25, 112.5, 31.25, 90.625, 0, 81.6, 68.75, 153.125,
> 0, 103.125, 150, 71.875, 134.375, 165.625, 0, 0, 50, 65.625,
> 6.25, 0, 6.25, 28.125, 6.25, 0, 3.125, 0, 0, 40, 0, 0, 0, 15.625,
> 31.25, 40.625, 21.875, 0, 0, 0, 0, 11.2, 0, 0, 0, 40.625, 15.625,
> 3.125, 3.125, 6.25, 0, 0, 0, 6.4, 15.625, 6.25, 0, 12.5, 50,
> 18.75, 0, 0, 0, 0, 0, 22.4, 6.25, 18.75, 0, 43.75, 81.25, 25,
> 6.25, 0, 0, 0, 0, 4.8, 0, 3.125, 0, 0, 0, 3.125, 0, 0, 56.25,
> 434.375, 53.125, 0, 65.625, 84.375, 87.5, 106.25, 218.75, 0,
> 0, 0, 1.6, 3.125, 0, 0, 0, 0, 6.25, 0, 3.125, 0, 0, 0, 56.25,
> 81.25, 128.125, 0, 62.5, 62.5, 6.25, 9.375, 96.875, 0, 0, 0,
> 0, 0, 0, 9.375, 12.5, 3.125, 0, 9.375), SH = c(25.6, 15.625,
> 3.125, 0, 12.5, 21.875, 15.625, 100, 0, 94.4, 28.125, 6.25, 0,
> 43.75, 43.75, 150, 25, 50, 0, 0, 6.25, 6.25, 190.625, 0, 34.375,
> 184.375, 731.25, 259.375, 250, 0, 0, 67.2, 528.125, 6.25, 0,
> 106.25, 890.625, 475, 6.25, 34.375, 0, 0, 0, 19.2, 134.375, 31.25,
> 0, 137.5, 171.875, 12.5, 46.875, 62.5, 0, 0, 0, 30.4, 71.875,
> 6.25, 12.5, 75, 206.25, 46.875, 15.625, 153.125, 0, 0, 0, 78.4,
> 12.5, 115.625, 21.875, 131.25, 259.375, 6.25, 15.625, 75, 0,
> 0, 0, 43.2, 21.875, 28.125, 3.125, 3.125, 131.25, 212.5, 131.25,
> 87.5, 37.5, 37.5, 0, 0, 153.125, 56.25, 28.125, 150, 3.125, 0,
> 0, 0, 92.8, 62.5, 18.75, 37.5, 53.125, 128.125, 231.25, 50, 140.625,
> 0, 0, 0, 0, 0, 3.125, 12.5, 9.375, 18.75, 18.75, 3.125, 3.125,
> 0, 0, 0, 6.25, 0, 15.625, 21.875, 31.25, 15.625, 28.125, 15.625
> )), .Names = c("CD", "GC", "GF", "P", "PR", "SC", "SH"), class = c("cast_df",
> "data.frame"), row.names = c("119 2006/10", "119 2006/12", "119 2007/02",
> "119 2007/04", "119 2007/06", "119 2007/08", "119 2007/10", "119 2008/01",
> "148 2006/05", "148 2006/10", "148 2006/12", "148 2007/02", "148 2007/04",
> "148 2007/06", "148 2007/08", "148 2007/10", "148 2007/12", "148 2008/01",
> "179 2006/04", "179 2006/05", "179 2006/10", "179 2006/12", "179 2007/02",
> "179 2007/04", "179 2007/06", "179 2007/08", "179 2007/10", "179 2007/12",
> "179 2008/01", "185 2006/04", "185 2006/07", "185 2006/10", "185 2006/12",
> "185 2007/02", "185 2007/04", "185 2007/06", "185 2007/08", "185 2007/10",
> "185 2007/12", "185 2008/01", "190 2006/04", "190 2006/05", "190 2006/07",
> "190 2006/10", "190 2006/12", "190 2007/02", "190 2007/04", "190 2007/06",
> "190 2007/08", "190 2007/10", "190 2007/12", "190 2008/01", "198 2006/04",
> "198 2006/05", "198 2006/07", "198 2006/10", "198 2006/12", "198 2007/02",
> "198 2007/04", "198 2007/06", "198 2007/08", "198 2007/10", "198 2007/12",
> "198 2008/01", "202 2006/04", "202 2006/05", "202 2006/07", "202 2006/10",
> "202 2006/12", "202 2007/02", "202 2007/04", "202 2007/06", "202 2007/08",
> "202 2007/10", "202 2007/12", "202 2008/01", "215 2006/04", "215 2006/05",
> "215 2006/07", "215 2006/10", "215 2006/12", "215 2007/02", "215 2007/04",
> "215 2007/06", "215 2007/08", "215 2007/10", "215 2007/12", "215 2008/01",
> "61 2006/10", "61 2006/12", "61 2007/02", "61 2007/04", "61 2007/06",
> "61 2007/08", "61 2007/10", "61 2007/12", "61 2008/01", "BC 2006/04",
> "BC 2006/05", "BC 2006/07", "BC 2006/10", "BC 2006/12", "BC 2007/02",
> "BC 2007/04", "BC 2007/06", "BC 2007/08", "BC 2007/10", "BC 2007/12",
> "BC 2008/01", "HC 2006/04", "HC 2006/05", "HC 2006/07", "HC 2006/10",
> "HC 2006/12", "HC 2007/02", "HC 2007/04", "HC 2007/06", "HC 2007/08",
> "HC 2007/10", "HC 2007/12", "HC 2008/01", "SC 2006/04", "SC 2006/05",
> "SC 2006/07", "SC 2006/12", "SC 2007/02", "SC 2007/04", "SC 2007/06",
> "SC 2007/08", "SC 2007/10", "SC 2007/12", "SC 2008/01")))
>
> #this is what I have tried
> subset(ffg, rownames(ffg)!=rownames(ffg[apply(ffg, MARGIN=1, sum)==0,]))
>
> Thanks in advance

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 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
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

______________________________________________
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.
Received on Thu 20 Nov 2008 - 17:13:14 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 20 Nov 2008 - 18:30:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive