首页 文章

从另一个创建一个新的Data.table并匹配一个变量的向量列表

提问于
浏览
0

我有一个带有 2.7 million observations21 variables 的data.table,需要生成一个新的data.table,其中 Variable 1vector of values 匹配 .

我有一些值的向量与一些Variable1值匹配,如下所示

VectorValue=  (A, B, XXZ, UDD...)

我想的是:

Table_B <- Table_A[Table_A$Variable1 == VectorValue]

要么

Table_B <- Table_A[Variable1 == VectorValue]

但我得到这个错误:

当i是data.table(或字符向量)时,必须使用'on ='参数(请参阅?data.table)或通过键入x(即排序,并标记为已排序,看?setkey) . 由于x在RAM中排序,因此键控连接可能会对非常大的数据产生进一步的速度优势 .

1 回答

  • 0

    我在这里看到两个选项:

    • VectorValueTable_A$Variable1 的长度相同,并且您希望比较相同位置的值并返回这些值相等的数据帧的子集 . 在这种情况下,您可能只需添加一个这样的逗号...

    Table_B <- Table_A[Table_A$Variable1 == VectorValue, ]

    ...表示您希望条件为 TRUE 的所有行和 Table_A 中的所有列 .

    • 您想要返回 Table_A 的任何行,其中 Table_A$Variable1 的值与 VectorValue 中的任何值匹配 . 在这种情况下,您需要使用 %in% 运算符而不是 == ,如此...

    Table_B <- Table_A[Table_A$Variable1 %in% VectorValue, ]

相关问题