首页 > 解决方案 > 使用 plm 函数创建面板数据时出现类 (x) 错误

问题描述

我正在尝试使用 plm 函数从我从 Excel 导入的平衡面板数据中汇集模型来创建面板数据。

当我运行代码时,出现以下错误:

class(x) <- setdiff(class(x), "pseries") 中的错误:将类设置为矩阵无效,除非维度属性的长度为 2(为 0)

library(plm)
library(readxl)
library(tidyr)
library(rJava)
library(xlsx)
library(xlsxjars)

all_met<- read_excel("data.xlsx", sheet = "all_met")
attach(all_met)

Y_all_met <- cbind(methane)
X_all_met <- cbind(gdp, ecogr, trade)

pdata_all_met <- plm.data(all_met, index=c("id","time"))

pooling_all_met <- plm(Y_all_met ~ X_all_met, data=pdata_all_met, model= "pooling")

运行代码后,我应该获得数据的汇总 ols 回归的汇总统计信息。有人可以告诉我如何解决这个问题吗?提前致谢。

标签: rplm

解决方案


第一个:

避免plm.datapdata.frame改用:

pdata_all_met <- pdata.frame(all_met, index=c("id","time"))

如果plm.data没有给你一个弃用警告,请使用更新版本的包。

第二(并解决问题):

data如果您使用 的参数,请在公式中指定列名,而不是来自全局环境的变量plm,即试试这个:

plm(methane ~ gdp + ecogr + trade, data=pdata_all_met, model= "pooling")

推荐阅读