Как исправить 'duplicate row.names' в пакете plm? - PullRequest
1 голос
/ 17 апреля 2020

Я начинающий с 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    

Есть предложения?

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

Маврикий

1 Ответ

2 голосов
/ 17 апреля 2020

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

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», если это на самом деле id региона.

...