我有一个如下所示的数据框。
dat <- data.frame(v1=c("a","b","c","c","a","w","f"),
v2=c("z","a","a","w","p","e","h"))
v1 v2
1 a z
2 b a
3 c a
4 c w
5 a p
6 w e
7 f h
我想根据这些字母是否出现在同一行中添加一个组列。
v1 v2 gp
1 a z 1
2 b a 1
3 c a 1
4 c w 1
5 a p 1
6 w e 1
7 f h 2
我的想法是首先将第一行分配给第 1 组,然后将 v1 或 v2 为“a”或“z”的任何行也分配给第 1 组。
有像第 3 行和第 4 行这样的场景,其中 c 被分配到第 1 组,因为在第 3 行中,v2 是“a”。并且“w”被分配给第 1 组,因为在第 4 行 v1 是“c”,它之前被分配给第 1 组。但是我的名单很长,所以我不能一直检查所有的“后代”。
我想知道是否有办法对这些字母进行分组,并返回一个带有组号的列表。像下表这样的东西就可以了。
letter gp
a 1
b 1
c 1
e 1
f 2
h 2
w 1
z 1