Thank you all for the quick responses. So far as I've checked, Marc's solution works perfectly and is quite speedy. I'm still trying to figure out what it is doing. :)
Henrique's solution seems to need some columns somewhere. David's solution does not find all the other measurements, possibly with positive values, taken on the same day. Thank you again for your efforts. Toby On 12 Aug 2010 at 14:32, Marc Schwartz wrote: > On Aug 12, 2010, at 2:24 PM, Marc Schwartz wrote: > > > On Aug 12, 2010, at 2:11 PM, Toby Gass wrote: > > > >> Dear helpeRs, > >> > >> I have a dataframe (14947 x 27) containing measurements collected > >> every 5 seconds at several different sampling locations. If one > >> measurement at a given location is less than zero on a given day, I > >> would like to delete all measurements from that location on that day. > >> > >> Here is a toy example: > >> > >> toy <- data.frame(CH = rep(3:5,3), DAY = c(rep(4,5), rep(5,4)), > >> SLOPE = c(seq(0.2,0.6, .1),seq(0.2, -0.1, -0.1))) > >> > >> In this example, row 9 has a negative measurement for Chamber 5, so I > >> would like to delete row 6, which is the same Chamber on the same > >> day, but not row 3, which is the same chamber on a different day. In > >> the full dataframe, there are, of course, many more days. > >> > >> Is there a handy R way to do this? > >> > >> Thank you for the assistance. > >> > >> Toby > > > > > > > > Not fully tested, but here is one possibility: > > > >> toy > > CH DAY SLOPE > > 1 3 4 0.2 > > 2 4 4 0.3 > > 3 5 4 0.4 > > 4 3 4 0.5 > > 5 4 4 0.6 > > 6 5 5 0.2 > > 7 3 5 0.1 > > 8 4 5 0.0 > > 9 5 5 -0.1 > > > > > >> subset(toy, ave(SLOPE, CH, DAY, FUN = function(x) any(x < 0)) == 0) > > CH DAY SLOPE > > 1 3 4 0.2 > > 2 4 4 0.3 > > 3 5 4 0.4 > > 4 3 4 0.5 > > 5 4 4 0.6 > > 7 3 5 0.1 > > 8 4 5 0.0 > > > This can actually be slightly shortened to: > > > subset(toy, !ave(SLOPE, CH, DAY, FUN = function(x) any(x < 0))) > CH DAY SLOPE > 1 3 4 0.2 > 2 4 4 0.3 > 3 5 4 0.4 > 4 3 4 0.5 > 5 4 4 0.6 > 7 3 5 0.1 > 8 4 5 0.0 > > > HTH, > > Marc > ______________________________________________ R-help@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.