From: Daniel Gerlanc <dgerlanc_at_gmail.com>

Date: Fri 11 Aug 2006 - 01:07:53 EST

)

> Andy,

> You are of course correct. I had focused on the description of the

*> problem, rather than the code provided, presuming that the code was not
*

*> correct, including the use of 'replace' and 'prob' in sample().
*

> I suppose it would be up to Daniel for clarification.

> Regards,

*> Marc
*

Date: Fri 11 Aug 2006 - 01:07:53 EST

Once again, thanks for your help.

I did not state the problem correctly, though the code is correct for what I want to do.

A better description of the problem would be that there is a matrix of probabilities:

> set.seed(1)

*> probs <- array(abs(rnorm(25, sd = 0.33)), dim = c(5,5), dimnames = list(1:5, letters[1:5]))
**> probs
*

a b c d e

1 0.21 0.27 0.50 0.0148 0.303 2 0.06 0.16 0.13 0.0053 0.258 3 0.28 0.24 0.21 0.3115 0.025 4 0.53 0.19 0.73 0.2710 0.656 5 0.11 0.10 0.37 0.1960 0.205

The column names, dimnames(probs)[[2]], are the names of units to be sampled. Each row is a trial. For each row (trial), I want to sample 3 of the units such that for each row I get a vector like the following:

[1] "a", "b", "a"

The samples are to be done with replacement, and these vectors could be combined to form a matrix of the samples.

The purpose of the "probs" matrix is to give each unit a probability that it will be sampled.

One way to do this follows:

index <- 1:ncol(probs)

res <- matrix(0,

nrow = dim(probs)[1], ncol = 3

)

for(i in 1:nrow(probs)){

## gets the indexes of the values chosen

res[, i] <- sample(index, size = 3, replace = TRUE, prob = probs[i, ])

}

Using "apply" as Andy described would accomplish the intended result.

- Dan

> > Hmm... If I read Daniel's code (which is different from his description)

*> > correctly, that doesn't seem to be what he wanted. Perhaps something like
**> > this:
**> >
**> > apply(probs, 1, function(p) sample(1:ncol(probs), 3, replace=TRUE, prob=p))
**> >
**> > Andy
*

>

> Andy,

>

> You are of course correct. I had focused on the description of the

>

> I suppose it would be up to Daniel for clarification.

>

> Regards,

>

> > >

-- Daniel Gerlanc Williams College '07 ______________________________________________ R-help@stat.math.ethz.ch 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.Received on Fri Aug 11 01:16:52 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Fri 11 Aug 2006 - 02:22:33 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*