如何修改Stargazer回归表格中的变量(因子水平)名称?
解决stargazer表格因子变量名称修改问题
核心是提前将
educ转换为带自定义标签的因子变量,再进行回归分析,具体步骤如下:- 转换因子并指定标签(假设你的数据集为
df):df$educ <- factor(df$educ, levels = c(1, 2, 3), # 对应原变量的数值水平 labels = c("小学", "高中", "大学")) # 自定义显示名称 - 使用转换后的变量构建回归模型(无需再用
as.factor()包裹educ):ModelBIC <- lm(parent ~ log(totinc) + male + as.factor(race) + year + educ + age + state, data = df) - 重新生成stargazer表格,此时
educ的因子水平会显示为自定义中文名称:stargazer(ModelBIC, type="html", title="Final Model", out = "Final Model.htm")
- 转换因子并指定标签(假设你的数据集为
若不想修改原数据集,可创建新的因子变量:
df$educ_labeled <- factor(df$educ, levels = c(1, 2, 3), labels = c("小学", "高中", "大学")) # 回归时使用新变量 ModelBIC <- lm(parent ~ log(totinc) + male + as.factor(race) + year + educ_labeled + age + state, data = df)常见失败原因排查:
- 未指定
levels参数,导致因子水平与原数值顺序不匹配 - 转换因子后未赋值回数据集,回归仍使用原数值型变量
- 回归时重复使用
as.factor(educ),覆盖了提前设置的因子属性
- 未指定
内容的提问来源于stack exchange,提问作者Ma Feihai
相关产品推荐
相关产品推荐

