使用入学和退学日期,计算每一年一个项目的注册人数[R]
我有一个大约10740个id的数据集,每个id都有一个进入年和退出年,id可以有多个不同时间长度的条目。他们在课程中的持续时间可以从一年(使用入学和退学日期,计算每一年一个项目的注册人数[R],r,R,我有一个大约10740个id的数据集,每个id都有一个进入年和退出年,id可以有多个不同时间长度的条目。他们在课程中的持续时间可以从一年(如入学年份=1986,退学年份=1986)到多年(如入学年份=1990,退学年份=1995) 我想计算一下该项目每年(在下面的例子中,从1986年到2004年)注册的ID数量 如果一个身份证只注册了一年,没有问题,但我需要在入境年和出境年之间每年计算一个身份证,因此对于身份证入境年1990年和出境年2005年,他们应该被计算为1990年、1991年、1992年
如入学年份=1986,退学年份=1986
)到多年(如入学年份=1990,退学年份=1995
)
我想计算一下该项目每年(在下面的例子中,从1986年到2004年)注册的ID数量
如果一个身份证只注册了一年,没有问题,但我需要在入境年和出境年之间每年计算一个身份证,因此对于身份证入境年1990年和出境年2005年,他们应该被计算为1990年、1991年、1992年、1993年、1994年、1995年的每年注册人数
有点难堪,谢谢你的建议
id = c(1,1,1,3,3,3,5,5,5,5)
entry_year = c(1986, 1988, 1990, 1987, 2002, 2003,1988, 1989, 1990, 2000 )
exit_year = c(1987, 1988, 1997, 2001, 2002, 2005, 1988, 1989, 1995, 2004)
test <- data.frame(id, entry_year, exit_year)
id=c(1,1,1,3,3,5,5,5,5,5)
入学年份=c(1986、1988、1990、1987、2002、20031988、1989、1990、2000)
退出年份=c(1987、1988、1997、2001、2002、2005、1988、1989、1995、2004)
测试可能是这样的:
years = min(entry_year):max(exit_year)
data.frame(year = years, enrolled = sapply(years,
function(x) {sum(test$entry_year<=x & test$exit_year>=x)}))
希望这有帮助 可能是这样的:
years = min(entry_year):max(exit_year)
data.frame(year = years, enrolled = sapply(years,
function(x) {sum(test$entry_year<=x & test$exit_year>=x)}))
希望这有帮助