【问题标题】:Error in class(x) while creating panel data using plm function使用 plm 函数创建面板数据时出现类 (x) 错误
【发布时间】:2019-06-03 11:25:17
【问题描述】:

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

当我运行代码时,我收到以下错误:

类(x)中的错误

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 回归的汇总统计信息。有人可以告诉我如何解决这个问题吗?提前致谢。

【问题讨论】:

    标签: r plm


    【解决方案1】:

    第一:

    避免使用plm.data 并改用pdata.frame

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

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

    第二次(并解决问题):

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

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

    【讨论】:

      【解决方案2】:

      如果将回归中使用的变量声明为因子,请检查数据结构,您可以通过键入: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 是我使用的变量的名称,如果您复制代码,请确保更改它;)

      【讨论】:

        猜你喜欢
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-13
        • 1970-01-01
        • 2016-10-18
        • 2014-05-19
        • 2020-01-12
        相关资源
        最近更新 更多