首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用plm函数创建面板数据时类(X)中的错误

使用plm函数创建面板数据时类(X)中的错误
EN

Stack Overflow用户
提问于 2019-01-08 18:09:23
回答 2查看 3.1K关注 0票数 1

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

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

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

代码语言:javascript
复制
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")

在运行代码之后,我应该得到汇总的数据的汇总统计信息。谁能告诉我怎么解决这个问题吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-08 18:41:56

1:

避免使用plm.data,而使用pdata.frame

代码语言:javascript
复制
pdata_all_met <- pdata.frame(all_met, index=c("id","time"))

如果plm.data没有给出反对意见警告,请使用包的较新版本。

2(并回答问题):

如果使用data参数plm,则在公式中指定列名,而不是全局环境中的变量,即,尝试如下:

代码语言:javascript
复制
plm(methane ~ gdp + ecogr + trade, data=pdata_all_met, model= "pooling")
票数 3
EN

Stack Overflow用户

发布于 2020-10-21 14:50:35

如果在回归中使用的变量被声明为因子,则可以通过键入:str(all_met)来检查数据的结构。

如果是,那么您应该将其声明为double,或将其声明为数值,(尝试不使用as.numeric()函数,它可能会更改数据中的值)。

就我个人而言,我已经在导入代码中的下一个规范中更改了这一点:

代码语言:javascript
复制
data <- read_csv("C:/Users/Uness/Desktop/Mydata.csv", 
    col_types = cols(variable1 = col_double(), 
        variable2 = col_double()))
View(data)

如果variable1和variable2是我使用的变量的名称,请确保在复制代码时更改该名称;)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54097394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档