0

我想在没有循环的情况下对具有不同概率集的给定向量进行采样。有没有办法做到这一点?

例如,在这段代码中,我想用某种 apply() 结构或任何真正的东西替换循环..

a <- c(1,2,3)
p <- matrix(c(.1,.1,.8,.1,.8,.1,.8,.1,.1), nrow=3)
s <- matrix(ncol=5, nrow=3)
for(i in 1:nrow(p)){
s[i,] <- sample(a, size=5, replace=T, prob=p[i,])
}

谢谢您的帮助!

4

1 回答 1

2

applyp自身:

t(apply(p, 1, sample, x=a, size=5, replace=TRUE))
     [,1] [,2] [,3] [,4] [,5]
[1,]    3    3    1    3    3
[2,]    2    2    1    1    2
[3,]    1    1    1    1    1

编辑functional::Curry在这里有一个,直到 flodel 指出它没有必要,因为apply通过允许命名参数通过....

于 2013-04-17T01:56:05.643 回答