# sample within groups-slight problem

5 messages
Open this post in threaded view
|

## sample within groups-slight problem

 I want to sample within groups, and when a group has only one associated number to just return that number. If I use this code:   groups <- c(1, 2, 2, 2, 3) numbers <- 1:5 tapply(numbers, groups, FUN = sample) I get the following output: >  groups <- c(1, 2, 2, 2, 3) >  numbers <- 1:5 >  tapply(numbers, groups, FUN = sample) \$`1` [1] 1 \$`2` [1] 3 2 4 \$`3` [1] 2 3 5 1 4 Can someone tell me why the \$'3' result samples all of the numbers and how to prevent it from doing so? I want the output for the \$'3' part to just be 5 in this example. Thanks for your help. > sessionInfo() R version 2.11.1 (2010-05-31) i386-pc-mingw32
Open this post in threaded view
|

## Re: sample within groups-slight problem

 Hi there, in the third case you get sample(5) which is exactly what you asked for. from ?sample: "If x has length 1, is numeric (in the sense of is.numeric) and x >= 1, sampling via sample takes place from 1:x. Note that this convenience feature may lead to undesired behaviour when x is of varying length in calls such as sample(x). See the examples. " 2011/9/6 Jack Siegrist <[hidden email]>: > I want to sample within groups, and when a group has only one associated > number to just return that number. > > If I use this code: > > groups <- c(1, 2, 2, 2, 3) > numbers <- 1:5 > tapply(numbers, groups, FUN = sample) > > I get the following output: > >>  groups <- c(1, 2, 2, 2, 3) >>  numbers <- 1:5 >>  tapply(numbers, groups, FUN = sample) > \$`1` > [1] 1 > > \$`2` > [1] 3 2 4 > > \$`3` > [1] 2 3 5 1 4 > > Can someone tell me why the \$'3' result samples all of the numbers and how > to prevent it from doing so? I want the output for the \$'3' part to just be > 5 in this example. > > Thanks for your help. > > >> sessionInfo() > R version 2.11.1 (2010-05-31) > i386-pc-mingw32 > > -- > View this message in context: http://r.789695.n4.nabble.com/sample-within-groups-slight-problem-tp3794912p3794912.html> Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > [hidden email] 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. > ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: sample within groups-slight problem

 In reply to this post by Jack Siegrist On Sep 6, 2011, at 8:13 PM, Jack Siegrist wrote: > I want to sample within groups, and when a group has only one   > associated > number to just return that number. And what we supposed to do when it has more than one value????? > > If I use this code: > > groups <- c(1, 2, 2, 2, 3) > numbers <- 1:5 > tapply(numbers, groups, FUN = sample) > > I get the following output: > >> groups <- c(1, 2, 2, 2, 3) >> numbers <- 1:5 >> tapply(numbers, groups, FUN = sample) > \$`1` > [1] 1 > > \$`2` > [1] 3 2 4 > > \$`3` > [1] 2 3 5 1 4 > > Can someone tell me why the \$'3' result samples all of the numbers   > and how > to prevent it from doing so? I want the output for the \$'3' part to   > just be > 5 in this example. Type: sample(5) If typing it once, does not lead you to enlightenment, then continue   typing it until enlightenment is achieved. -- David "Buddha" Winsemius ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.