【发布时间】:2021-09-06 20:16:51
【问题描述】:
更新示例(参见规则)
我有带有 id1 和 id2 列的 data.table(如下所示)
data.table(id1=c(1,1,2,3,3,3,4), id2=c(1,2,2,1,2,3,2))
| id1 | id2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |
| 4 | 2 |
我想生成一个标志来识别 id1 和 id2 之间的重复关联。
规则:如果一个特定的 id1 已经与 id2 相关联,那么它应该被标记..一个唯一的 id2 应该只与一个 id1 相关联(见下面的解释)
a) 寻找有效的解决方案和 b) 仅使用基础和 data.table 函数的解决方案
| id1 | id2 | flag | |
|---|---|---|---|
| 1 | 1 | ||
| 1 | 2 | Y | <== since id2=1is assicated with id1=1 in 1st row |
| 2 | 2 | ||
| 3 | 1 | Y | <== since id2=1 is assicated with id1=1 in 1st row |
| 3 | 2 | Y | <== since id2=2 is assicated with id1=2 in 3rd row |
| 3 | 3 | ||
| 4 | 2 | Y | <== since id2=2 is assicated with id1=2 in 3rd row |
【问题讨论】:
-
您创建的示例数据
data.table(id1=c(1,1,2,3,3,3,4), id2=c(1,2,2,1,2,3,2))与显示的不同 -
我添加了更多细节
-
也许您正在寻找
igraph关系 -
是的。有没有简单的方法来使用 data.table
-
igraph 可能更高效
标签: r data.table