如何生成含条件随机变量的DataFrame:按运动状态设置患病概率
R语言实现符合条件的二元变量DataFrame
以下是直接可行的解决方案,核心是根据运动状态分组匹配患病概率,再用rbinom生成对应结果:
先设定样本量(可自行调整),生成运动状态变量:
# 设定样本数量 n <- 1000 # 生成运动状态:active/non-active,这里按1:1比例生成,可修改prob参数调整比例 activity_status <- sample(c("active", "non-active"), size = n, replace = TRUE, prob = c(0.5, 0.5))根据运动状态匹配对应的患病概率:
# 创建概率向量:active对应0.5,non-active对应0.6 disease_prob <- ifelse(activity_status == "active", 0.5, 0.6)用
rbinom生成心血管疾病患病情况(1=患病,0=未患病):# 生成患病变量,每个样本对应各自的概率 heart_disease <- rbinom(n = n, size = 1, prob = disease_prob)合并为DataFrame:
# 组合成最终数据框 df <- data.frame(activity_status, heart_disease)
验证结果
可以用表格统计验证概率是否符合要求:
# 按运动状态分组统计患病比例 table(df$activity_status, df$heart_disease) |> prop.table(margin = 1)
运行后会看到active组的患病比例接近0.5,non-active组接近0.6。
内容的提问来源于stack exchange,提问作者OS_name
相关产品推荐
相关产品推荐

