Qué sintaxis data.table para combinación izquierda (una columna) para preferir
¿Cómo debo comenzar a pensar qué sintaxis prefiero?
Mi criterio es la eficiencia (este es el número uno) y también legibilidad / mantenibilidad.
Est
A <- B[A, on = .(id)] # wow such. concision
O es
A[B, on = .(id), comment := i.comment]
O incluso (como sugiere PoGibas):
A <- merge(A, B, all.x = TRUE)
Para completar, entonces una forma más básica es usarmatch()
:
A[, comment := B[chmatch(A[["id"]], id), comment]]
Datos de ejemplo:
library(data.table)
A <- data.table(id = letters[1:10], amount = rnorm(10)^2)
B <- data.table(id = c("c", "d", "e"), comment = c("big", "slow", "nice"))