【发布时间】:2022-11-17 23:25:50
【问题描述】:
我有一个大型工作曝光数据库,我想计算每个主体对每个代理的曝光持续时间。但是一个主题可以通过不同的工作接触到代理。对于每份工作,我都有开始年份和结束年份。但我的问题是工作之间存在重叠期,我想找到与 R 接触代理的总持续时间,同时只计算重叠年一次(如果我在工作 1 中计算它,我不想在作业 2) 中重述。我添加了一个可以使用的数据(可以称为dat)。例如对于主题 2,他通过他的工作 1 和工作 2 接触到代理 A,我们有每个工作的 YEARIN 和 YEAROUT,但是这两个工作之间有 3 年的重叠(1998-2000)
| ID | JOB | AGENT | YEARIN | YEAROUT |
|---|---|---|---|---|
| 2 | 1 | A | 1998 | 2009 |
| 2 | 2 | A | 1996 | 2000 |
| 2 | 7 | B | 1979 | 1985 |
| 2 | 8 | B | 1978 | 1982 |
| 7 | 1 | B | 1973 | 2006 |
| 7 | 1 | A | 1973 | 2006 |
| 15 | 1 | A | 1979 | 2007 |
| 18 | 1 | D | 1976 | 1985 |
| 18 | 2 | D | 1980 | 2008 |
| 18 | 4 | D | 1970 | 2005 |
| 18 | 2 | A | 1978 | 1979 |
| 18 | 3 | A | 1984 | 1995 |
| 20 | 3 | C | 1988 | 1993 |
| 20 | 4 | C | 1996 | 2002 |
| 20 | 6 | C | 2000 | 2008 |
我想使用函数 mutate 和 aggregate,但我不确定如何考虑重叠的年份。
【问题讨论】:
-
请使用
R中的dput()函数添加您的数据。
标签: r