【发布时间】:2013-08-18 17:59:02
【问题描述】:
我有以下示例数据表。
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
提前致谢
【问题讨论】:
-
你确定你有一个data.table而不是一个data.frame吗?我没有看到 data.table 语法。
-
是的。积极。添加了熟悉的基于 ':' 的行编号。
标签: r data.table