使用条件随机变量生成数据帧

问题描述 投票:0回答:1

我正在尝试创建一个包含两个变量的数据框。第一个是二元身体活动状态(活跃/不活跃),第二个是心血管疾病的存在(也是二元变量 - 1/0)。

问题是疾病的存在必须以给定的概率发生。活跃状态的人患病的概率为 0.5,不活跃的人患病的概率为 0.6。

拜托,真的需要帮助。我不知道如何做到这一点。研究了sample和rbinom函数但无济于事。

r variables random statistics simulation
1个回答
0
投票

您可以在基本 R 中使用

ifelse
语句和示例中的
probs
参数来执行此操作。下面是一个包含 10,000 个观察值的示例(以帮助检查它是否适用于
prop.table

set.seed(123)
n <- 1e4
df <- data.frame(physical_activity = sample(c("Active", "Non-Active"), n, replace = TRUE))

df$cardio_disease <- ifelse(df$physical_activity %in% "Active", 
                            sample(0:1, n, replace = TRUE), # P(disease|active) = 0.5
                            sample(0:1, n, replace = TRUE, prob = c(0.4, 0.6))) # P(Disease|non-active) = 0.6

检查结果:

prop.table(table(df), margin = 1)

#physical_activity         0         1
#       Active     0.5062787 0.4937213
#       Non-Active 0.4021674 0.5978326
© www.soinside.com 2019 - 2024. All rights reserved.