【发布时间】:2021-06-06 20:30:21
【问题描述】:
经过一些研究,特别是在这里,我发现了一种我认为非常有趣的方法,可以通过条件加入两个data.table:
DT[WHERE, v := FROM[.SD, on=, x.v]] .
很遗憾,尽管尝试了很多次,我还是无法执行此操作。
从 DT1 和 DT2,我需要创建 DTres :只对一些 DT1 行执行连接。
而DT3是我失败的尝试之一……
可以这样做吗?怎么做?
非常感谢您的帮助。
library(data.table)
DT1 <- data.table(crit = rep(c('AA', 'BB', 'CC', 'DD'),each = 3),
num = rep(1:3, 4),
val = rnorm(12)^2)
DT1
DT2 <- data.table(BB = c(1,3),
cross = c(128, 183))
DT2
DTres <- data.table(crit = rep(c('AA', 'BB', 'CC', 'DD'),each = 3),
num = rep(1:3, 4),
val = rnorm(12)^2,
cross = c(rep(NA,3), 128, NA, 183, rep(NA, 6))
)
DTres
DT3 <- DT1[crit == 'BB', cross := DT2[DT1, on = .('BB' = num), x.cross]]
【问题讨论】:
标签: r join data.table