我想用dt1中的一个变量的条件合并两个数据表.请参见以下示例:
library(data.table)
# Example data tables
dt1 <- data.table(id = 1:5, var1 = c(1, 0, 1, 0, 1), name1 = c("A", "B", "C", "D", "E"))
dt2 <- data.table(name2 = c("A", "B", "C", "D", "E"), other_var = 101:105)
> dt1
id var1 name1
1: 1 1 A
2: 2 0 B
3: 3 1 C
4: 4 0 D
5: 5 1 E
> dt2
name2 other_var
1: A 101
2: B 102
3: C 103
4: D 104
5: E 105
我想做的是合并dt1和dt2,这样一个值只有在dt1中var1 == 1时才被合并.预期结果:
> dt1
id var1 name1 other_var
1: 1 1 A 101
2: 2 0 B NA
3: 3 1 C 103
4: 4 0 D NA
5: 5 1 E 105
我试过这样的方法:
dt1[var1 == 1][dt2, other_var := i.other_var, on = .(name1 = name2)]
和
dt1[dt2, on = .(name1 = name2), other_var := i.other_var, var1 == 1]
但这两种方法似乎都没有奏效.我做错了什么?