Как исправить «дубликаты row.names» в пакете plm?

Я новичок в R, так что терпите меня. Я потратил некоторое время, пытаясь решить эту проблему, основываясь на более ранних ответах, но я не могу решить эту проблему.

Я хочу запустить регрессию панели с помощью пакета plm. Однако, когда я пробую код формы reg<-plm(y ~ x1, x2, x3, data=mydataframe, index=c('region', 'year'), model='within'), он выдает ошибку

Error in .rowNamesDF<-(x, value = value) : 
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘10’, ‘11’, ‘14’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 

Я не могу понять, почему он говорит, что у меня есть повторяющиеся имена строк. Я попробовал некоторые предложения, сделанные другими людьми, такие как проверка anyDuplicated(row.names(mydataframe)), которая говорит мне, что нет повторяющихся имен строк, или make.names(mydataframe, unique=TRUE, что не решает проблему.

Данные выглядят так

   ï..region id year  grpmlnr    grppc   cpi

1   RegionA   1 1998  18245.5  12242.8 167.7      
2   RegionA   1 1999  32060.6  21398.0 140.8      
3   RegionA   1 2000  42074.5  27969.5 120.9    

Какие-либо предложения?

Заранее большое спасибо, я знаю, что это глупый вопрос, но мне действительно нужна помощь.

Мориц


r plm
person Maurits W.    schedule 17.04.2020    source источник
comment
Вам необходимо предоставить воспроизводимый пример данных, иначе мы не сможем помочь. Пожалуйста, используйте dput() в своем полном фрейме данных или, по крайней мере, ```` head()```` и опубликуйте вывод в своем вопросе.   -  person Fnguyen    schedule 17.04.2020


Ответы (1)


Я не уверен, что синтаксис правильный

reg<-plm(y ~ x1, x2, x3, data=mydataframe, index=c('region', 'year'), model='within')

Вы имеете в виду:

reg<-plm(y ~ x1 + x2 + x3, data=mydataframe, index=c('region', 'year'), model='within')

?

Также обратите внимание, что в ваших данных нет «региона». Однако есть «i..region» или, возможно, «id», если это действительно идентификатор региона.

person desval    schedule 17.04.2020
comment
Привет, я думаю, ты прав - синтаксис неправильный, вместо запятых должен быть +. Теперь работает. Не могу поверить, что я этого не понимал. Благодарю вас! - person Maurits W.; 17.04.2020