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 <chang648@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]]

