我正在尝试使用plm函数创建Panel数据,以从我从Excel导入的平衡面板数据中汇集一个模型。
当我运行代码时,我会得到以下错误:
类(X) <- setdiff( class(x),"pseries")中的错误:将类设置为矩阵无效,除非维度属性长度为2 (was 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")在运行代码之后,我应该得到汇总的数据的汇总统计信息。谁能告诉我怎么解决这个问题吗?提前谢谢。
发布于 2019-01-08 18:41:56
1:
避免使用plm.data,而使用pdata.frame:
pdata_all_met <- pdata.frame(all_met, index=c("id","time"))如果plm.data没有给出反对意见警告,请使用包的较新版本。
2(并回答问题):
如果使用data参数plm,则在公式中指定列名,而不是全局环境中的变量,即,尝试如下:
plm(methane ~ gdp + ecogr + trade, data=pdata_all_met, model= "pooling")发布于 2020-10-21 14:50:35
如果在回归中使用的变量被声明为因子,则可以通过键入:str(all_met)来检查数据的结构。
如果是,那么您应该将其声明为double,或将其声明为数值,(尝试不使用as.numeric()函数,它可能会更改数据中的值)。
就我个人而言,我已经在导入代码中的下一个规范中更改了这一点:
data <- read_csv("C:/Users/Uness/Desktop/Mydata.csv",
col_types = cols(variable1 = col_double(),
variable2 = col_double()))
View(data)如果variable1和variable2是我使用的变量的名称,请确保在复制代码时更改该名称;)
https://stackoverflow.com/questions/54097394
复制相似问题