Как изменить данные панели с dplyr в R? - PullRequest
1 голос
/ 26 сентября 2019

У меня есть данные панели (комбинация человек-год), для которых мне нужно изучить влияние характеристик вашего партнера (несколько «х») на вашу переменную результата (y).Все дано в одном тибле / датафрейме.Информация о партнере предоставляется "pid".

paneldata = data.frame(id=c(1,1,1,2,2,2,3,3,3,4,4,4), time=seq(1:3), pid=c(3,3,NA,4,4,3,1,1,2,2,2,NA),
                           y=c(9,10,11,12,13,14,15,16,17,18,19,20), x=c(21,22,23,24,25,26,27,28,29,30,31,32), 
                           x_partner=c(27,28,NA,30,31,29,21,22,26,24,25,NA))

library(dplyr)
paneldata %>%
  group_by(id, time) %>%
  mutate(x_pid = x[pid])

Я хочу достичь x_partner, но мне нужно далеко ... 1005 *.Я пытаюсь поймать индекс, во время работы через group_by "id" и "time", получить "pid" (не уникальный!) И посмотреть на x в комбинации pid-time.

enter image description here

1 Ответ

3 голосов
/ 26 сентября 2019

Вы не должны группироваться по идентификатору, только по времени.

paneldata %>%
  group_by(time) %>%
  mutate(x_partner = x[match(id, pid)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...