Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用入学和退学日期,计算每一年一个项目的注册人数[R]_R - Fatal编程技术网

使用入学和退学日期,计算每一年一个项目的注册人数[R]

使用入学和退学日期,计算每一年一个项目的注册人数[R],r,R,我有一个大约10740个id的数据集,每个id都有一个进入年和退出年,id可以有多个不同时间长度的条目。他们在课程中的持续时间可以从一年(如入学年份=1986,退学年份=1986)到多年(如入学年份=1990,退学年份=1995) 我想计算一下该项目每年(在下面的例子中,从1986年到2004年)注册的ID数量 如果一个身份证只注册了一年,没有问题,但我需要在入境年和出境年之间每年计算一个身份证,因此对于身份证入境年1990年和出境年2005年,他们应该被计算为1990年、1991年、1992年

我有一个大约10740个id的数据集,每个id都有一个进入年和退出年,id可以有多个不同时间长度的条目。他们在课程中的持续时间可以从一年(
如入学年份=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)}))
希望这有帮助