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 <[email protected]> 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.
>
> ______________________________________________
> [email protected] 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]]
______________________________________________
[email protected] 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.