我有一个查找表,其中“第一次”在列d中。例如,患者因特定疾病而首次入院的时间。我想通过data.table将其与多个其他条件的主数据框连接起来。
我的问题是,不幸的是,主数据表可能具有相同的连接条件,这会导致加入后每个患者有多个“第一次”。现实世界的数据很混乱!
是否可以仅在第一次匹配记录上进行{data.table}连接?
这类似于this question,但多个匹配是在主数据表上进行的。我认为mult仅适用于要加入的表格中有几个条目的情况。
repex:
我的问题是,不幸的是,主数据表可能具有相同的连接条件,这会导致加入后每个患者有多个“第一次”。现实世界的数据很混乱!
是否可以仅在第一次匹配记录上进行{data.table}连接?
这类似于this question,但多个匹配是在主数据表上进行的。我认为mult仅适用于要加入的表格中有几个条目的情况。
repex:
library(data.table)
set.seed(1724)
d1 <- data.table(a = c(1, 1, 1),
b = c(1, 1, 2),
c = sample(1:10, 3))
d2 <- data.table(a = 1, b = 1, d = TRUE)
d2[d1, on = c("a", "b")]
a b d c
1: 1 1 TRUE 4
2: 1 1 TRUE 8
3: 1 2 NA 2
期望的输出
a b d c
1: 1 1 TRUE 4
2: 1 1 NA 8
3: 1 2 NA 2
duplicated
命令找到需要设置为 NA 的位置。 - bdecafd1[d2, on = .(a, b), d := d, mult = "first"]
- Henrikd1[d2, on = .(a, b), (names(d2)) := ..d2, mult = "first"]
或者类似的东西,如果有很多变量,可能要做所有变量? - thelatemail