我試圖加入兩個數據表。第一個(下面稱爲'左')有一組鍵(列'k')。第二個('右')有一組類似的鍵以及每個鍵的值。我想在原地更新'左'數據,以便它存在的地方具有'正確'的值。但是在不存在的情況下,應該填充默認值而不是NA。R Data.Table加入 - 將「缺少」從NA轉換爲默認值
我創建了一個函數'default',它將用默認值替換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
感謝您的幫助。
看看'左[右]',應該明確地告訴你,爲什麼你的方法沒有奏效 – eddi
我只是做' right [left] [is.na(value),value:=「none」]' – eddi