У меня есть следующий набор данных студенческих записей.я хочу определить учащихся, которые впервые присоединились к определенной программе в 2014 году, когда они были в 9-м классе.
names.first<-c('a','a','b','b','c','d')
names.last<-c('c','c','z','z','f','h')
year<-c(2014,2013,2014,2015,2015,2014)
grade<-c(9,8,9,10,10,10)
df<-data.frame(names.first,names.last,year,grade)
df
Для этого я использовал следующее утверждение, чтобы сказать, что я хочу, чтобы студентыгде программа year==2014
и их grade ==9.
df$first.cohort<-ifelse(df$year==2014 & df$grade==9,1,0)
df
names.first names.last year grade first.cohort
1 a c 2014 9 1
2 a c 2013 8 0
3 b z 2014 9 1
4 b z 2015 10 0
5 c f 2015 10 0
6 d h 2014 10 0
Однако, как вы можете заметить, это будет включать студентов, которые не вошли в программу в 2014 году, таких как студент a
, который начал в 2013Как создать заявление ifelse, в котором я собираю только тех учеников, которые находятся в 9-м классе и впервые запустили программу в 2014 году, чтобы df
выглядело как
names.first names.last year grade first.cohort
1 a c 2014 9 0
2 a c 2013 8 0
3 b z 2014 9 1
4 b z 2015 10 0
5 c f 2015 10 0
6 d h 2014 10 0