在R中使用panelvar包运行Panel VAR时遭遇列不存在错误
R中运行Panel VAR时的列不存在错误
问题背景
使用瑞典统计局提供的市政收入分配面板数据,在R中调用pvarfeols函数运行Panel VAR模型,执行代码如下:
df<- read_excel("Inkfördelning per kommun.xlsx") nujavlar <- pvarfeols(dependent_vars = c("Kvintil-1", "Kvintil-4", "Kvintil-5"), lags = 1, transformation = "demean", data = df, panel_identifier = c("Kommun", "Year") )
出现的错误
错误1
Error: Can't subset columns that don't exist. x Column `Kvintil-1` doesn't exist.
错误2
Warning in xtfrm.data.frame(x) : cannot xtfrm data frames Error: Can't subset columns that don't exist. x Location 2 doesn't exist. ℹ There are only 1 column.
已尝试的解决措施
- 确认所有变量为数值型
- 清理工作区并重启R程序
- 使用palm包将数据转换为面板数据框
- 将实体变量
Kommun(市政)转换为因子类型
排查与解决方案建议
检查数据读入结果
先确认数据是否正确读入,查看列名和数据结构:# 打印所有列名 colnames(df) # 查看数据结构 str(df)如果输出显示列名与代码中指定的
Kvintil-1等不符,说明读入时列名因Excel表头格式、合并单元格等问题被修改,需匹配实际列名调整代码。修正Excel读入参数
若Excel文件的表头位于第二行(第一行是注释或标题),需指定skip参数跳过无关行:df <- read_excel("Inkfördelning per kommun.xlsx", skip = 1)同时确认读入的是正确工作表,可先列出所有工作表:
readxl::excel_sheets("Inkfördelning per kommun.xlsx") # 指定工作表读入 df <- read_excel("Inkfördelning per kommun.xlsx", sheet = "实际工作表名")验证目标列是否存在
使用模糊匹配查看数据中是否包含目标列:library(dplyr) df %>% select(contains("Kvintil"))若实际列名是
Kvintil 1(空格替代横杠)或带有特殊字符,需修改dependent_vars中的列名以匹配实际数据。检查面板标识符列
确认Kommun和Year列存在且格式正确:df %>% select(Kommun, Year)若
Year列是字符型,需转换为数值型:df$Year <- as.numeric(df$Year)
内容的提问来源于stack exchange,提问作者Jack Söderberg
相关产品推荐
相关产品推荐

