Hi wangwallace,

Here are two ways of doing it. Could you please be more specific?

# data set
X <- matrix(1:9, ncol = 3, byrow = TRUE)
colnames(X) <- c('M', 'P', 'Q')
X

# option 1  -- two samples per row
replicate(2, {
 out <- t(apply(X, 1, sample))
 colnames(out) <- colnames(X)
 list(out)
 })

# option 2  -- two samples of the whole data
replicate(2,{
X <- X[sample(3),]
 list(X)
 })



HTH,
Jorge


On Fri, Nov 19, 2010 at 1:34 PM, wangwallace <> wrote:

>
> this is a simple question, but I wasn't able to figure it out myself.
>
> here is the data frame:
>
> M P Q
> 1 2 3
> 4 5 6
> 7 8 9
>
> M, P, Q each represent a variable
>
> I want to draw 2 random sample from each row separately to create a new
> data
> frame. how can I do it?
>
> thanks!!
> --
> View this message in context:
> http://r.789695.n4.nabble.com/how-to-apply-sample-function-to-each-row-of-a-data-frame-tp3050787p3050787.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]]

