This is, maybe, not the best solution but I hope it will help you: x<-data.frame(id=c(1,1,1,2,2,2,2,3,3,3,4,4), v1=c(1:12), V2=c(12:23))
do.call("rbind",by(x,x$id,function(x) x[c(sample(nrow(x),2)),])) Andrija On Thu, Feb 17, 2011 at 6:39 PM, yf <chang...@umn.edu> wrote: > > But i need for each id have two data. > Like... > > x > id v1 V2 > 1 1 1 12 > 2 1 2 13 > > 4 2 4 15 > 5 2 5 16 > > > 8 3 8 19 > 9 3 9 20 > > 11 4 11 22 > 12 4 12 23 > > So should write sample( if sample id >2 ,2). I don't know how to write > (if > sample id >2). Thanks. > -- > View this message in context: > http://r.789695.n4.nabble.com/sampling-tp3310184p3311253.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > [[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.