У меня есть набор данных панели, который выглядит следующим образом
ID Model Month Country Activations avg_price
1 VW Golf 2012-01 NL 23 5000
1 VW Golf 2012-02 NL 2 5500
1 VW Golf 2012-01 FR 8 6000
1 VW Golf 2012-02 FR 34 7000
2 Audi TT 2012-01 NL 8 6900
Теперь я хочу взять первые различия для переменных Activations
и avg_price
. Я делаю это с помощью функции diff(data$Activations)
из пакета plm
, но сначала мне нужно преобразовать фрейм данных с помощью pdata.frame(data)
. Так:
data_fd = pdata.frame(data)
data_fd$Activations = diff(data_fdactivations)
Это возвращает следующую ошибку, используя приведенные выше данные: duplicate couples (id-time) in resulting pdata.frame
. Это потому, что у меня есть данные по разным странам, и когда я агрегирую данные по всем странам (таким образом, всего Activations
и avg_price
и только одна комбинация id-месяц), это работает нормально. Однако теперь я хочу взять первые отличия, также используя переменную Country
.
Тогда мой кадр данных должен выглядеть так:
ID Model Month Country Activations avg_price
1 VW Golf 2012-01 NL NA NA
1 VW Golf 2012-02 NL -21 500
1 VW Golf 2012-01 FR NA NA
1 VW Golf 2012-02 FR 26 1000
etc
Кто-нибудь знает, как я могу это сделать?