UPRN Start.Date End.Date Disability
1 2006-12-20 17-NOV-17 Y
1 2006-12-20 17-NOV-17 N
2 1991-12-06 N
2 1991-12-06 N
3 1991-04-29 2015-04-21 N
3 2015-04-22 Y
4 2005-02-15 Y
4 2005-02-15 N
У меня есть набор данных, который выглядит примерно так, как указано выше (но гораздо больше).Я хотел бы создать новый столбец с именем Any_Disability.
Способ, которым я хочу это сделать, состоит в том, чтобы сгруппировать по UPRN, Start.Date и End.Date, и если какая-либо строка в этой группе имеет инвалидность, тогда обе строки будут иметь «Y» для Any_Disability.
Я уже пробовал:
library(dplyr)
test3<-all_data%>%
group_by(UPRN, Start.Date, End.Date)%>%
mutate(Any_Disability = ifelse(Disability=="Y", "Y","N"))
Но это не работает, так как дает ответ ниже:
UPRN Start.Date End.Date Disability Any_Disability
1 2006-12-20 17-NOV-17 Y Y
1 2006-12-20 17-NOV-17 N N
2 1991-12-06 N N
2 1991-12-06 N N
3 1991-04-29 2015-04-21 N N
3 2015-04-22 Y Y
4 2005-02-15 Y Y
4 2005-02-15 N N
Воспроизводимый код:
UPRN<-c(1,1,2,2,3,3,4,4)
Start.Date<-c("2006-12-20","2006-12-20", "1991-12-06","1991-12-06","1991-04-29", "2015-04-22","2005-02-15", "2005-02-15")
End.Date<-c("17-NOV-17", "17-NOV-17", "","", "2015-04-21", "", "", "")
Disability<-c("Y","N","N","N","N","Y","Y","N")
dataset <- data.frame(UPRN, Start.Date, End.Date, Disability)