我有以下示例数据表。
id val
1: a 1
2: b 3
3: c 2
4: d 1
我想在id
列之间进行随机配对,但是我不希望 id 与自身配对。使用 data.tables 执行此操作的最有效方法是什么?我尝试过的一种方法是首先在数据表中找到随机行,如下所示
x = x[sample(nrow(x),1),]
但后来我遇到了一个障碍,因为我必须运行检查以确保当前索引不存在于返回的索引中。这在计算上会很昂贵。例如,可能的输出结果是
id val id.pair val.pair
1: a 1 b 3
2: b 3 c 2
3: c 2 a 1
4: d 1 a 1
提前致谢