Just use lapply(): set.seed(1) x <- rnorm(20)
> lapply(1:3, function(i) sample(x, i)) [[1]] [1] -0.6264538 [[2]] [1] -0.3053884 -2.2146999 [[3]] [1] -2.21469989 -0.30538839 -0.04493361 HTH, Marc Schwartz On Jun 17, 2011, at 12:53 PM, Daniel Malter wrote: > I am sure there is a more elegant version of doing this. But this works: > > x<-rnorm(20) > y<-matrix(1:5) #number of points to sample > f<-function(z){sample(x,z)} > apply(y,1,f) > > Just adjust y to your liking. > > HTH, > Daniel > > > alfredo wrote: >> >> Hi All, >> >> I'd like to randomly sample a vector N times, where each successive random >> sample increases in size. I have realised that the function sample does >> not take vectors for arguments. For example, >> >> x<-rnorm(20,0,1) >> sample(x,c(1,2,3)) ## will only return one random sample of size 1. >> >> The trick seems to be getting past the size argument of the function. I've >> tried different things without success. Any help would be most >> appreciated! >> >> Thanks, >> >> A ______________________________________________ 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.