创建具有固定边距的意外事件 table

Creating a contingency table with fixed margins

我正在尝试创建一个 table,其中包含来自中心超几何分布的随机条目,其中列和行的总数是固定的。

不过,我可以使列总和固定且相等,但不能使行总和固定。我已经阅读了其他答案,但 none 似乎专门讨论了如何去做,我的 R 知识非常基础,可以在一些帮助或正确方向上做。

为了从中心超几何分布中获取值,我使用了 BiasedUrn 包。

例如:

N <- 50
rand <- 10
n1 <- 25
odds0 <- rep(1,K)  
m0 <- rep(N/K,K)
library(BiasedUrn)
i <- as.table(rMFNCHypergeo(nran=rand, n=n1, m=m0, odds=odds0))
addmargins(i) 
             A   B   C   D   E   F   G   H   I   J Sum
       A     5   3   5   7   5   5   6   6   5   5  52    
       B     8   7   4   5   5   6   3   4   5   4  51
       C     3   6   4   4   4   5   6   8   5   4  49
       D     4   4   6   3   6   4   5   3   3   5  43
       E     5   5   6   6   5   5   5   4   7   7  55
       Sum  25  25  25  25  25  25  25  25  25  25 250

我希望使所有列总和等于 25,并且所有行总和等于我可以选择的另一个数字,例如 50。

您是否在寻找来自 base R 的 r2dtable 函数?

set.seed(101)
tt <- r2dtable(n=1,c=rep(25,6),r=rep(50,3))
addmargins(as.table(tt[[1]]))
##       A   B   C   D   E   F Sum
## A     7   9   7  11   9   7  50
## B    10   7  10   6   7  10  50
## C     8   9   8   8   9   8  50
## Sum  25  25  25  25  25  25 150