【发布时间】:2022-01-11 16:50:29
【问题描述】:
我有一个包含几列因素的 data.table (dt1),例如
ID Factor1 Factor2 Factor3
01 A X J
02 B X L
03 C Y J
每一行都有一个唯一的 ID,但可能有多行具有相同的因子变量组合。我有另一个表(dt2),它具有完全相同的因子变量,但要大得多,并且没有 ID 列。 dt1 中的每个因子组合都会在 dt2 中出现多次。例如
Factor1 Factor2 Factor3
A Z K
A X J
A X J
B J L
B X L
C X J
C Y J
我想为 dt1 中的每一行返回 dt2 中具有相同因子变量组合的随机行的索引。
我想我可以使用.I[sample(.N,1)] 返回一个随机索引,但不知道如何按每行的相关因素进行分组。我是否需要创建一个函数来依次获取 dt1 中的每一行,或者是否有一种矢量化的方式来实现这一点?
所需的输出可以是长度为nrow(dt1) 的向量,也可以是 dt1 中的附加列。它将包含来自 dt2 的行索引。例如像这样(ID 01 的索引可能是 2 或 3):
ID Factor1 Factor2 Factor3 Index
01 A X J 3
02 B X L 5
03 C Y J 7
非常感谢任何帮助。
【问题讨论】:
-
请提供
dt2的样本数据和想要的输出。 -
@Wimpel 添加了这些
标签: r data.table match