Подмножество данных для указанных c значений в переменной в R - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть набор данных панели в длинном формате, который выглядит примерно так:

idpers <- c(1040, 1040, 1041, 1041, 1041, 1232, 1277, 1277, 1277, 1277)
wave <- c(2012, 2013, 2012, 2013, 2014, 2011, 2011, 2012, 2013, 2014)
df <- as.data.frame c(idpers, wave) 

где idpers - это идентификатор собеседника, а wave - индикатор того, на какой волне / годе проводилось исследование.

Я хотел бы проверить эффект от лечения, которое имело место, скажем, в 2013 году. И я хочу поднастроить свой фрейм данных только для участников, у которых есть наблюдения до и после лечения. Так что я просто хочу сохранить каждую строку в idpers, если есть другие строки для этого же idpers со значениями как до, так и после / во время волны 2013 года. Я пробовал много вещей, подобных этому:

df.ref%>%
  group_by(idpers)%>%
  filter(wave %in% c(2011,2012,2013,2014))

Но это сохраняет любую строку с волновыми значениями там.

Я надеюсь, что это было ясно, и я счастлив чтобы дать больше деталей! Большое спасибо!

1 Ответ

4 голосов
/ 27 апреля 2020

Я думаю, что вы ищете:

library(dplyr)
df %>% group_by(idpers) %>% filter(any(wave < 2013) && any(wave > 2013))

#  idpers  wave
#   <dbl> <dbl>
#1   1041  2012
#2   1041  2013
#3   1041  2014
#4   1277  2011
#5   1277  2012
#6   1277  2013
#7   1277  2014

Это будет включать idpers, который будет иметь как минимум одно значение до 2013 года и одно значение после.

...