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

stephen sefick ssefick at gmail.com
Thu Nov 20 18:01:28 CET 2008


##I want to remove the rows where the row sums are zero and this is as
far as I have gotten

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
-- 
Stephen Sefick
Research Scientist
Southeastern Natural Sciences Academy

Let's not spend our time and resources thinking about things that are
so little or so large that all they really do for us is puff us up and
make us feel like gods.  We are mammals, and have not exhausted the
annoying little problems of being mammals.

								-K. Mullis



More information about the R-help mailing list