也许您正在寻找r2dtable
?
> r2dtable(2, c(175,128), c(190, 113))
[[1]]
[,1] [,2]
[1,] 108 67
[2,] 82 46
[[2]]
[,1] [,2]
[1,] 114 61
[2,] 76 52
另外,这是 @mnel 的答案的一个版本,使用rmultinom
做n
复制然后合并结果。如果你只需要几次重复,这并不重要,但因为rmultinom
我能做到,我想我会看看如何做到。
n <- 10
e <- cbind(X1 = c(100,90,30),X2 = c(75,28,120))
aperm(array(sapply(1:nrow(e), function(i)
rmultinom(n, rowSums(e)[i], (e/rowSums(e))[i,])),
dim=c(ncol(e),n,nrow(e))), c(3,1,2))