使用R语言plm包运行面板数据固定效应回归时遭遇‘Fixed对象未找到’及语法错误的技术求助
解决plm固定效应回归的语法错误与"Fixed未找到"问题
嘿,我来帮你排查下问题所在——你遇到的两个错误其实都是由语法问题导致的,一步步来解决:
第一个错误:unexpected symbol 的原因
你公式里的变量比如 Comp Employment、Personal inc、prison pop 都带空格,R 默认不识别包含空格的变量名,会把空格后的内容当成新的符号,所以触发了语法错误。
第二个错误:object 'Fixed' not found 的原因
因为第一条plm语句执行失败,根本没创建出名为Fixed的回归结果对象,所以调用summary(Fixed)时自然找不到它。
修正方案
我给你两种可选的修正方式,选哪种都能解决问题:
方式1:用反引号包裹带空格的变量
直接在公式里给带空格的变量套上反引号`,让R正确识别它们:
library(readr) library(plm) # 读取数据 eco_490_data <- read_csv("C:/Users/Steve's pc/Downloads/New folder (2)/Stephens eco class/eco 490 data.csv") View(eco_490_data) names(eco_490_data) # 修正语法后的plm回归 Fixed <- plm(Hom ~ LRM + `Comp Employment` + beer + Poverty + pop + Unemployment + Employment + `Personal inc` + `prison pop`, data = eco_490_data, index = c("year", "msa"), model = "within") # 现在可以正常查看结果了 summary(Fixed)
方式2:提前重命名变量(更推荐)
把所有带空格的变量名改成下划线分隔的形式,避免后续代码再踩类似的坑:
library(readr) library(plm) # 读取数据 eco_490_data <- read_csv("C:/Users/Steve's pc/Downloads/New folder (2)/Stephens eco class/eco 490 data.csv") # 批量替换变量名里的空格为下划线 colnames(eco_490_data) <- gsub(" ", "_", colnames(eco_490_data)) View(eco_490_data) names(eco_490_data) # 用新的变量名执行回归 Fixed <- plm(Hom ~ LRM + Comp_Employment + beer + Poverty + pop + Unemployment + Employment + Personal_inc + prison_pop, data = eco_490_data, index = c("year", "msa"), model = "within") summary(Fixed)
另外补充下:你原代码里公式第二行开头多了个多余的+,而且公式和data参数之间没加逗号,这些也是语法错误的诱因,上面的修正代码已经帮你调整好了。
内容的提问来源于stack exchange,提问作者Steven cuomo
相关产品推荐
相关产品推荐

