我想从数据集创建一个邻接列表,如下所示:
id group
1 1
2 1
3 1
4 2
5 2
连接的ID是同一组中的ID。因此,我想获得以下邻接列表:
id id2
1 2
1 3
2 1
2 3
3 1
3 2
4 5
5 4
我在努力弄清楚如何去做。特别是,我找到了一个顺序无关紧要的解决方案(split and expand.grid by group on large data set)。就我而言,确实如此,所以我不想放弃这些观察。
答案 0 :(得分:0)
也许是这样的,使用data.table:
require(data.table)
dt <- fread('id group
1 1
2 1
3 1
4 2
5 2')
dt[, expand.grid(id, id), by = group][Var1 != Var2][, -1]
# Var1 Var2
# 1: 2 1
# 2: 3 1
# 3: 1 2
# 4: 3 2
# 5: 1 3
# 6: 2 3
# 7: 5 4
# 8: 4 5