You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用fixest拆分固定效应回归后,esttable报错'nchar()'需字符向量

问题原因及解决办法

你遇到的这个错误,是因为用split="year"参数后,feols返回的是多模型组合的fixest_multi对象,旧版本的esttable在处理这种对象时,行名处理逻辑存在bug,导致nchar()函数拿到了非字符类型的输入,触发报错。

解决步骤

1. 优先更新fixest到最新版

后续版本的fixest已经修复了这个兼容性问题,直接更新包即可:

install.packages("fixest")

更新完成后重新运行你的代码,esttable(m1)就能正常输出结果了。

2. 用fixest自带的etable替代esttable

fixest原生的etable()函数对多模型对象的支持比esttable更好,完全适配split生成的结果,直接替换即可:

rm(list=ls())
options(digits = 7, scipen = 999)

library(fixest)
library(wooldridge)

data(crime4)
m1 <- feols(crmrte ~ polpc | year,  data = crime4, split = "year")
etable(m1)  # 把esttable换成etable

3. 手动拆分模型(无法更新包时使用)

如果不能更新包,可以手动按年份拆分数据、逐个拟合模型,再传给esttable:

rm(list=ls())
options(digits = 7, scipen = 999)

library(fixest)
library(wooldridge)

data(crime4)
# 按年份拆分数据集
year_groups <- split(crime4, crime4$year)
# 遍历每个年份组拟合模型
model_set <- lapply(year_groups, function(sub_df) {
  feols(crmrte ~ polpc | year, data = sub_df)
})
# 给模型命名,方便输出时对应年份
names(model_set) <- names(year_groups)
# 输出结果
esttable(model_set)

内容的提问来源于stack exchange,提问作者Jolan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:10:36