获取R中是否有新id组合的指示器

获取R中是否有新id组合的指示器,r,dplyr,tidyverse,tidyr,R,Dplyr,Tidyverse,Tidyr,我正在尝试创建一个列,如果先前组合了unit\u id的两个值,则该列的值为1。 我的数据如下所示: dataset group_id year unit_id 1 1 1970 20 2 1 1970 10 3 1 1970 12 4 1 1970 18 5 2 1975 30 6 2 1975 10 7 2

我正在尝试创建一个列,如果先前组合了
unit\u id
的两个值,则该列的值为1。 我的数据如下所示:

    dataset
   group_id year unit_id
1         1 1970      20
2         1 1970      10
3         1 1970      12
4         1 1970      18
5         2 1975      30
6         2 1975      10
7         2 1975      12
8         3 1981      40
9         4 1983      20
10        4 1983      10
11        4 1983      30
12        4 1983      18
13        5 2000      40
14        5 2000      30
15        5 2000      10
ideal_dataset
   group_id year unit_id new_together
1         1 1970      20            0
2         1 1970      10            0
3         1 1970      12            0
4         1 1970      18            0
5         2 1975      30            1
6         2 1975      10            1
7         2 1975      12            1
8         3 1981      40            1
9         4 1983      20            1
10        4 1983      10            1
11        4 1983      30            1
12        4 1983      18            1
13        5 2000      20            0
14        5 2000      30            0
15        5 2000      10            0
我想检查的是,对于每个
组id
值,是否存在
单元id
的新组合。我所说的“新”是指任何两个
单位id
值的组合,这些值在
年份的较低值中不存在。因此,这基本上需要按
年份对我的数据进行排序
,然后检查
单位id
的任何组合是否与以前的
组id
组合不同。我想得到的是一个指标,如果有新的组合,则取
1
,如果没有,则取
0
。大概是这样的:

    dataset
   group_id year unit_id
1         1 1970      20
2         1 1970      10
3         1 1970      12
4         1 1970      18
5         2 1975      30
6         2 1975      10
7         2 1975      12
8         3 1981      40
9         4 1983      20
10        4 1983      10
11        4 1983      30
12        4 1983      18
13        5 2000      40
14        5 2000      30
15        5 2000      10
ideal_dataset
   group_id year unit_id new_together
1         1 1970      20            0
2         1 1970      10            0
3         1 1970      12            0
4         1 1970      18            0
5         2 1975      30            1
6         2 1975      10            1
7         2 1975      12            1
8         3 1981      40            1
9         4 1983      20            1
10        4 1983      10            1
11        4 1983      30            1
12        4 1983      18            1
13        5 2000      20            0
14        5 2000      30            0
15        5 2000      10            0
在本例中,
group==2
因为单元30是新的,所以取
new\u-together==1
的值。
group==3
因为单元40是新的,所以取
new\u-together==1
的值。然后group==4也接受它,因为单元30和18还没有合并。其他组没有新的组合。 我真的很困惑,发现很难找到令人满意的解决方案。有什么想法吗?
谢谢

你能用伪代码设计算法并展示你迄今为止的尝试吗?你的要求不是很清楚。你说的“联合”是什么意思?你能再解释一下吗?为什么第8排的单元id 40不是新的?你说得对,对不起。我通过组合将单位id 30更正为1,我的意思是1)新的单位代码(未在任何较低的年份值中显示)或2)两个新单位id值的组合(例如,单位id 10和20从未在任何具有较低年份值的组中组合在一起)。这能让@user3116101更清楚吗?