从组信息创建邻接列表

时间:2018-04-19 15:13:38

标签: r adjacency-matrix

我想从数据集创建一个邻接列表,如下所示:

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)。就我而言,确实如此,所以我不想放弃这些观察。

1 个答案:

答案 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