I’d like to sample the vector “y” repeatedly. In this dummy dataset, I’d like to sample (and store) it 1, 2, and 3 times. Is there a straightforward way to do this without using a “for” loop? x <- c(1 :3) y <- c(1:10) (run.sample <- sample (y, x)) Thanks very much, James Hudson [[alternative HTML version deleted]]
On Sep 13, 2010, at 10:30 AM, James Hudson wrote:> I?d like to sample the vector ?y? repeatedly. In this dummy dataset, I?d > like to sample (and store) it 1, 2, and 3 times. > > Is there a straightforward way to do this without using a ?for? loop? > > x <- c(1 :3) > > y <- c(1:10) > > (run.sample <- sample (y, x)) > > Thanks very much, > > James HudsonWhen you say "1, 2 and 3 times", do you mean that you want 1, 2 and 3 elements from 'y' randomly sampled: set.seed(1)> sapply(x, function(i) sample(y, i))[[1]] [1] 3 [[2]] [1] 4 6 [[3]] [1] 10 2 8 Or, do you want the entire 'y' vector permuted 1, 2 and 3 times: set.seed(1)> sapply(x, function(i) replicate(i, sample(y)))[[1]] [,1] [1,] 3 [2,] 4 [3,] 5 [4,] 7 [5,] 2 [6,] 8 [7,] 9 [8,] 6 [9,] 10 [10,] 1 [[2]] [,1] [,2] [1,] 3 10 [2,] 2 2 [3,] 6 6 [4,] 10 1 [5,] 5 9 [6,] 7 8 [7,] 8 7 [8,] 4 5 [9,] 1 3 [10,] 9 4 [[3]] [,1] [,2] [,3] [1,] 5 9 5 [2,] 6 6 8 [3,] 4 7 4 [4,] 2 4 2 [5,] 10 8 1 [6,] 8 10 6 [7,] 9 1 7 [8,] 1 2 9 [9,] 7 3 3 [10,] 3 5 10 I am guessing the first scenario, but included the second just in case. See ?sapply in which help for both sapply() and replicate() is available. HTH, Marc Schwartz
You can try this also: Vectorize(sample, 'size')(y, 1:3) On Mon, Sep 13, 2010 at 12:30 PM, James Hudson <jmghudson@gmail.com> wrote:> I’d like to sample the vector “y” repeatedly. In this dummy dataset, I’d > like to sample (and store) it 1, 2, and 3 times. > > > > Is there a straightforward way to do this without using a “for” loop? > > > > x <- c(1 :3) > > > > y <- c(1:10) > > > > (run.sample <- sample (y, x)) > > > > > > Thanks very much, > > James Hudson > > [[alternative HTML version deleted]] > > > ______________________________________________ > R-help@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 [[alternative HTML version deleted]]