[R] subset data frame with condition

Henrique Dallazuanna wwwhsd at gmail.com
Fri Mar 18 19:17:37 CET 2011


Try this:


subset(pop, (ave(Area, Area, FUN = length) == 1 | ave(Area, Area, FUN
= function(x)cumsum(prop.table(x))) < 0.7 & Area %in% 1:3))


On Fri, Mar 18, 2011 at 2:48 PM, Nicolas Gutierrez <nicolasg at uw.edu> wrote:
> Hello,
>
> One more question.. I have the data.frame "pop":
>
>    xloc yloc  gonad  ind    Ene    W   Area
> 1    23  20   516.74   1     0.02 20.21  1
> 2    23  20  1143.20   1     0.02 20.21  1
> 3    23  20   250.00   1     0.02 20.21  1
> 4    22  15   251.98   1     0.02 18.69  2
> 5    22  15   598.08   1     0.02 18.69  2
> 6    21  19   250.00   1     0.02 20.21  3
> 7    22  20   251.98   1     0.02 18.69  4
> 8    22  20   598.08   1     0.02 18.69  4
>
> and I need to extract 50% (or rounded) of the rows for each Area (from Area
> 1 to 3 only):
>
>    xloc yloc  gonad  ind    Ene    W   Area
> 1    23  20   516.74   1     0.02 20.21  1
> 2    23  20  1143.20   1     0.02 20.21  1
> 4    22  15   251.98   1     0.02 18.69  2
> 6    21  19   250.00   1     0.02 20.21  3
>
> I did this within a loop, but considering my data.frame has more than 10,000
> rows and within other loops it makes my code run forever! Any hints?
> Thanks!!
>
> Nico
>
> ______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list