【发布时间】:2020-09-17 15:16:46
【问题描述】:
我正在为一个变量生成随机数并多次重复该过程。我想在循环的每次迭代中计算每个组(group1、group2、group3)的 value 的平均值。我想存储结果,以便之后可以估计每个组在循环的所有迭代中的平均份额。
require(tidyverse)
set.seed(21)
group1 <- sample(c("A1", "A2", "B1", "B2", "C1", "C2"), 1000, TRUE)
group2 <- sample(c("G1", "G2", "G4"), 1000, TRUE)
group3 <- sample(c("D1", "D2"), 1000, TRUE)
prob <- runif(1000, 0, 1)
df <- as.data.frame(cbind(group1, group2, group3, prob))
df$prob <- as.numeric(df$prob)
for (i in 1:15) {
df <- df %>%
mutate(value = rbinom(nrow(df), 1, prob = prob))
# [INSERT CALCULATION OF MEAN FOR EACH GROUP VARIABLE AND STORE IT]
}
# [INSERT CALCULATION OF MEAN ACROSS ALL ITERATIONS]
我的主要问题是如何以有效的方式估计多个变量的value 的平均值并以平滑的方式存储结果。
提前致谢。
澄清一下:
我希望最终结果看起来像这样:
col "group1_A1" "Group1_A2" "group1_B1" "group1_B2" "group1_C1" "group1_C2" "group2_G1" "group2_G2" "group2_G4" "group3_D1" "group3_D2"
x1 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x2 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x3 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x4 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x4 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x5 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x6 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x7 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x8 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x9 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
x10 "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar" "x_bar"
其中三组子组的平均值正在替换"x_bar,每一行都是一个迭代计算的平均值。一个简单的解决方案是使用dplyr 的group_by,但我想找到一个解决方案,所以我遍历了所有三个分组变量。
把它放在一个上下文中:想象变量prob 是死亡的概率。 group1是表示6个年龄组的变量,group2表示社会经济地位,group3是性别。然后我想看看谁最有可能死。为此,我随机生成一个取决于prob 概率的伯努利变量。为了消除一些随机性,我重复这个过程 15 次,然后想看看每个死亡的社会人口群体有多大的份额(在变量 value 上收到 1 的值。对于每次迭代,我想计算组死者的归属感(所以有多少男性死了,多少老人死了)。很抱歉没有想出一个更快乐的例子。
【问题讨论】:
-
你所说的“
value == 1的份额是什么意思?你能添加一个你想要输出的例子吗? -
嗨@stlba,我添加了更多信息,并试图更准确地了解我希望最终结果的样子。我希望它更清楚。否则请告诉我。
标签: r dplyr data-management