我的数据集如下所示:
ID year disease
1 2007 0
1 2008 1
1 2009 1
2 2008 0
2 2009 0
2 2010 1
我想创建一个新变量“ StartYear”,以记录ID首次开始患有这种疾病。 我的目标数据如下:
ID year disease StartYear
1 2007 0 2008
1 2008 1 2008
1 2009 1 2008
2 2008 0 2010
2 2009 0 2010
2 2010 1 2010
到目前为止,我知道我需要使用library(dplyr),但我尝试了此方法,但这是不正确的
data <- data%>%
group_by(id)%>%
arrange(id, year)%>%
mutate(StartYear=ifelse(disease==1,Year,NA)
答案 0 :(得分:2)
尝试
data %>%
arrange(ID, year) %>%
group_by(ID) %>%
mutate(StartYear = year[disease == 1][1])
答案 1 :(得分:1)
尝试
library(tidyverse)
data %>%
group_by(ID) %>%
mutate( StartYear=min(year*(1/disease)) ) %>%
ungroup()