我正在尝试加入两个数据表。第一个(下面称为“左”)有一组键(“k”列)。第二个('right')具有一组相似的键以及每个键的值。我想就地更新“左”数据,使其具有来自“右”的值。但是在它不存在的情况下,应该填充一个默认值而不是 NA。
我创建了一个函数“默认”,它将用默认值替换 NA。
default <- function(value, default) {
value[is.na(value)] <- default
return(value)
}
我不明白为什么以下不起作用。
left <- data.table(k=c(1,2,3,4,NA), key="k")
right <- data.table(k=c(1,2), value=c("a","b"), key="k")
left[right, value := default(value,"none")]
实际结果...
> left
k value
1: NA NA
2: 1 a
3: 2 b
4: 3 NA
5: 4 NA
预期结果...
k value
1: NA none
2: 1 a
3: 2 b
4: 3 none
5: 4 none
谢谢你的帮助。