如何在R中按种族双条件筛选数据框并用于dropout rate回归分析
在R中按种族筛选数据并进行回归分析的完整方案
嘿,我来帮你把这个流程梳理清楚!你已经开了个好头,接下来咱们一步步完成数据筛选和回归分析:
1. 完成数据筛选
你用subset()函数的思路是对的,咱们把它补全。假设你需要保留的变量包括race、individual.ind、institutional.ind、male、twohousehold、foreignbornparent、parentdegree,以及核心因变量dropout_rate(你原代码里的welf...应该是未写完的变量,这里用示例变量名统一说明):
方法一:用Base R的subset()
# 筛选种族为"B"和"H"的行,并保留指定变量 newdata <- subset(x.20, race %in% c("B", "H"), select = c(race, individual.ind, institutional.ind, male, twohousehold, foreignbornparent, parentdegree, dropout_rate))
方法二:用dplyr包(更直观的管道语法)
如果你习惯用tidyverse工具链,filter()+select()的组合可读性更强:
library(dplyr) newdata <- x.20 %>% filter(race %in% c("B", "H")) %>% select(race, individual.ind, institutional.ind, male, twohousehold, foreignbornparent, parentdegree, dropout_rate)
验证筛选结果:做完筛选后,记得确认数据是否符合预期:
# 查看种族分布,确保只有"B"和"H"两类 table(newdata$race)
2. 执行回归分析
筛选好数据后,就可以用lm()函数构建线性回归模型,把dropout_rate作为因变量,其余变量作为自变量:
# 构建回归模型 dropout_model <- lm(dropout_rate ~ individual.ind + institutional.ind + male + twohousehold + foreignbornparent + parentdegree, data = newdata) # 查看模型详细结果(系数、显著性、R²等) summary(dropout_model)
额外小提示:
- 如果你的
dropout_rate是二分类变量(比如0=未辍学,1=辍学),更适合用逻辑回归glm(..., family = binomial),而不是线性回归;如果是比例变量,也可以考虑beta回归。 - 若想对比两个种族的辍学率差异,可以把
race也加入模型公式:dropout_model_with_race <- lm(dropout_rate ~ race + individual.ind + institutional.ind + male + twohousehold + foreignbornparent + parentdegree, data = newdata)
内容的提问来源于stack exchange,提问作者Ghost Koi
相关产品推荐
相关产品推荐

