Без доступа к вашим данным невозможно подтвердить, что это сработает, но я попытаюсь указать на несколько проблем в вашем коде, которые, вероятно, способствуют возникновению ошибки.
Эта строка прекрасна:
tino=read.delim("clipboard")
Вот где вы начинаете делать ошибки:
Dep<- with(tino, cbind(Gross, index=c("Country, Year"))
Ind<- tino[ , c('DEX', 'GRW' , 'Debt', 'Life')]
with()
обычно используется для создания новых векторов из data.frame. Все, что он делает, это позволяет вам отказаться от обозначения $
для ссылки на переменные в data.frame и ничего больше. Читая ваш код, вы можете подумать, что with()
на самом деле модифицирует объект tino
, но это не так.
Кроме того, когда вы хотите создать data.frame для использования в регрессионной модели, вам нужно, чтобы все правые и левые переменные были в одном data.frame или матрице, а не разделяли их. Это связано с тем, что большинство функций моделирования работают с использованием «формулы» и аргумента data
, которые передаются в model.frame()
для предварительной обработки данных перед моделированием.
Это означает, что вы, вероятно, хотите сделать что-то вроде следующего, пропуская все вышеперечисленное:
pandata <- plm.data(tino, index = c("Country", "Year"))
pooling <- plm(Gross ~ DEX + GRW + Debt + Life, data = pandata, model = "pooling")
summary(pooling)
Если у вас много переменных с правой стороны, вы можете подмножество data.frame, например:
pandata2 <- plm.data(tino[ , c('Gross', 'DEX', 'GRW' , 'Debt', 'Life')], index = c("Country", "Year"))
pooling2 <- plm(Gross ~ ., data = pandata2, model = "pooling")
используя обозначение .
как сокращение для «всех других столбцов в данных».
person
Thomas
schedule
19.03.2016