[R] subsetting by groups, with conditions
David Winsemius
dwinsemius at comcast.net
Tue Dec 29 02:31:25 CET 2009
On Dec 28, 2009, at 7:03 PM, Seth W Bigelow wrote:
> I have a data set similar to this:
>
> P1id Veg1 Veg2 AreaPoly2 P2ID
> 1 p p 1 1
> 1 p p 1.5 2
> 2 p p 2 3
> 2 p h 3.5 4
>
> For each group of "Poly1id" records, I wish to output (subset) the
> record
> which has largest "AreaPoly2" value, but only if Veg1=Veg2. For this
> example, the desired dataset would be
>
> P1id Veg1 Veg2 AreaPoly2 P2ID
> 1 p p 1.5 2
> 2 p p 2 3
Can you be more expansive (or perhaps more accurate?) about the
conditions you want satisfied? Looking at the that dataset, I only see
one row that has the largest value for AreaPoly2 within the three
records where Veg1==Veg2.
Otherwise I would think the answer might be along these lines:
> dft <- read.table(textConnection("P1id Veg1 Veg2
AreaPoly2 P2ID
+ 1 p p 1 1
+ 1 p p 1.5 2
+ 2 p p 2 3
+ 2 p h 3.5 4"), header=T)
> dft$Veg1 <- factor(dft$Veg1, levels=levels(dft$Veg2))
> s.dft <- subset(dft, Veg1==Veg2)
> s.dft[which.max(s.dft$AreaPoly2),]
P1id Veg1 Veg2 AreaPoly2 P2ID
3 2 p p 2 3
--
David
>
> Can anyone point me in the right direction on this?
>
> Dr. Seth W. Bigelow
> Biologist, USDA-FS Pacific Southwest Research Station
> 1731 Research Park Drive, Davis California
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
More information about the R-help
mailing list