Ошибка в классе (x) при создании данных панели с использованием функции plm - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать данные Panel с помощью функции plm для объединения модели из сбалансированных данных Panel, импортированных из Excel.

Когда я запускаю код, я получаю следующую ошибку:

Ошибка в классе (x) <- setdiff (class (x), "pseries"): неверно для установки класс для матрицы, если атрибут измерения не имеет длины 2 (был 0) </p>

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")

После запуска кода я должен был получить сводную статистику регрессии моих данных в пул. Может кто-нибудь сказать мне, как я могу решить эту проблему? Заранее спасибо.

1 Ответ

0 голосов
/ 08 января 2019

первый:

Избегайте 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")
...