[R] Better way of Grouping?

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Fri Sep 28 23:25:41 CEST 2012


You have not specified the objective function you are trying to optimize with your term "efficient", or what you do with all of these subsets once you have them. 

For notational simplification and completeness of coverage (not necessarily computational speedup) you might want to look at "tapply" or ddply/dlply from the plyr package. If you build lists of subsets you can index into them according to grouping value. You can use expand.grid to build all permutations of grouping values to use as indexes into those lists of subsets.

To reiterate, you have not indicated what you want to do with these subsets, so there could be special-purpose functions that do what you want.  As always, reproducible code leads to reproducible answers. :)
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

Charles Determan Jr <deter088 at umn.edu> wrote:

>Hello R users,
>
>This is more of a convenience question that I hope others might find
>useful
>if there is a better answer.  I work with large datasets that requires
>multiple parsing stages for different analysis.  For example, compare
>group
>3 vs. group 4.  A more complicated comparison would be time B in group
>3 of
>group L with B in group 4 of group L.  I normally subset each group
>with
>the following type of code.
>
>data=read(...)
>
>#L v D
>L=data[LvD %in% c("L"),]
>D=data[LvD %in% c("D"),]
>
>#Groups 3 and 4 within L and D
>group3L=L[group %in% c("3"),]
>group4L=L[group %in% c("3"),]
>
>group3D=D[group %in% c("3"),]
>group4D=D[group %in% c("3"),]
>
>#Times B, S45, FR2, FR8
>you get the idea
>
>
>Is there a more efficient way to subset groups?  Thanks for any
>insight.
>
>Regards,
>Charles
>
>	[[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