我有两个data.table
,一个包含原始数据,另一个包含要从原始数据中减去的数据。挑战是,仅适用于匹配" id"应该减去这些值。为了增加难度,列名在这两个data.tables中是相同的。我找到了两种方法来实现这一点,虽然我不确定第二种解决方案是否在所有可能的情况下都是正确的:
library(data.table)
dt <- data.table(id = letters[1:10],
value = 11:20,
key = "id")
dt_false <- data.table(id = letters[6:15],
value = 1:10,
key = "id")
# matching subset
dt[dt_false, nomatch=0]
# 'i.column' seem to be the joined column values
dt[dt_false, nomatch=0, correct_value := value - i.value]
# not sure if 'dt_false$value' is properly joined or just externally recycled!?
dt[dt_false, nomatch=0, correct_value := value - dt_false$value]
我想知道,如果第二种解决方案也有效,或者恰恰是巧合而为吗?