gpt4 book ai didi

r - 生成单元格计数随机但行总和始终相同的数据

转载 作者:行者123 更新时间:2023-12-04 16:54:18 25 4
gpt4 key购买 nike

我处于一种情况,我需要创建一堆假数据集,其中两个变量的总和与我的真实数据中的相同,但每个变量的计数是随机的。这是设置:

>df
X.1 X.2
1 145 30
2 55 73

第一行总和为 175,第二行总和为 128。我正在寻找的是一种生成数据帧(或一堆数据帧)的方法,如下所示:
>df.2
X.1 X.2
1 100 75
2 90 38

在 df.2 中,单元格计数已更改,但行的总和仍为同一个表。实际数据有数百行,但如果有帮助,只有两个变量。我试图弄清楚如何用 sample() 做到这一点但没有任何运气。有什么建议?

谢谢!

最佳答案

也许您正在寻找 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 的答案的一个版本,它使用 rmultinomn复制,然后合并结果。如果您只需要几次重复,这并不重要,而是因为 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))

关于r - 生成单元格计数随机但行总和始终相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com