我正在尝试创建一个包含两个变量的数据框。第一个是二元身体活动状态(活跃/不活跃),第二个是心血管疾病的存在(也是二元变量 - 1/0)。
问题是疾病的存在必须以给定的概率发生。活跃状态的人患病的概率为 0.5,不活跃的人患病的概率为 0.6。
拜托,真的需要帮助。我不知道如何做到这一点。研究了sample和rbinom函数但无济于事。
您可以在基本 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