使用 plm 函数创建面板数据时 class(x) 出错
Error in class(x) while creating panel data using plm function
我正在尝试使用 plm 函数从我从 Excel.
导入的平衡面板数据汇集模型来创建面板数据
当我 运行 代码时,出现以下错误:
Error in class(x) <- setdiff(class(x), "pseries") : invalid to set
the class to matrix unless the dimension attribute is of length 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")
在 运行 编写代码后,我应该得到我的数据的汇总 ols 回归的汇总统计信息。有人可以告诉我如何解决这个问题吗?提前致谢。
第一名:
避免使用 plm.data
并使用 pdata.frame
:
pdata_all_met <- pdata.frame(all_met, index=c("id","time"))
如果 plm.data
没有给您一个弃用警告,请使用更新版本的包。
第二(并解决问题):
如果您使用 plm
的 data
参数,请在公式中指定列名,而不是全局环境中的变量,即,试试这个:
plm(methane ~ gdp + ecogr + trade, data=pdata_all_met, model= "pooling")
如果回归中使用的变量被声明为因子,请检查数据结构,您可以通过键入以下内容来完成:str(all_met)
.
如果是,那么您应该将其声明为双精度或数字(尽量不要使用 as.numeric()
函数,它可能会更改数据中的值)。
我个人已通过导入代码中的下一个规范更改了它:
data <- read_csv("C:/Users/Uness/Desktop/Mydata.csv",
col_types = cols(variable1 = col_double(),
variable2 = col_double()))
View(data)
其中 variable1 和 variable2 是我使用的变量的名称,如果您复制代码,请务必更改它;)
我正在尝试使用 plm 函数从我从 Excel.
导入的平衡面板数据汇集模型来创建面板数据当我 运行 代码时,出现以下错误:
Error in class(x) <- setdiff(class(x), "pseries") : invalid to set the class to matrix unless the dimension attribute is of length 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")
在 运行 编写代码后,我应该得到我的数据的汇总 ols 回归的汇总统计信息。有人可以告诉我如何解决这个问题吗?提前致谢。
第一名:
避免使用 plm.data
并使用 pdata.frame
:
pdata_all_met <- pdata.frame(all_met, index=c("id","time"))
如果 plm.data
没有给您一个弃用警告,请使用更新版本的包。
第二(并解决问题):
如果您使用 plm
的 data
参数,请在公式中指定列名,而不是全局环境中的变量,即,试试这个:
plm(methane ~ gdp + ecogr + trade, data=pdata_all_met, model= "pooling")
如果回归中使用的变量被声明为因子,请检查数据结构,您可以通过键入以下内容来完成:str(all_met)
.
如果是,那么您应该将其声明为双精度或数字(尽量不要使用 as.numeric()
函数,它可能会更改数据中的值)。
我个人已通过导入代码中的下一个规范更改了它:
data <- read_csv("C:/Users/Uness/Desktop/Mydata.csv",
col_types = cols(variable1 = col_double(),
variable2 = col_double()))
View(data)
其中 variable1 和 variable2 是我使用的变量的名称,如果您复制代码,请务必更改它;)