[R] random section of samples based on group membership

Carlos J. Gil Bellosta cgb at datanalytics.com
Mon Jul 24 17:31:52 CEST 2006


Dear Wade,

Say that your groups are

groups <- sort(sample(1:10, 100, replace = TRUE))

Create a dummy

rows <- 1:length(groups)

Then

tapply( rows, groups, function(x) sample(x, 1))

does the trick to select the row numbers you need for your sampling.

Sincerely,

Carlos J. Gil Bellosta
http://www.datanalytics.com
http://www.data-mining-blog.com


Quoting Wade Wall <wade.wall at gmail.com>:

> Hi all,
>
> I have a matrix of 474 rows (samples) with 565 columns (variables).
> each of the 474 samples belong to one of 120 groups, with the
> groupings as a column in the above matrix. For example, the group
> column would be:
>
> 1
> 1
> 1
> 2
> 2
> 2
> .
> .
> .
> 120
> 120
>
> I  want to randomly select one from each group.  Not all the groups
> have the same number of samples, some have 4, some 3 etc.  Is there a
> function to do this, or would I need to write a looping statement to
> look at each successive group?
>
> I basically want to combine the randomly selected samples from the 120
> groups into a new matrix in order to perform a cluster analysis.
>
> Thanks,
> Wade
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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