Que sintaxe data.table para a junção esquerda (uma coluna) para preferir
Como devo começar a pensar em qual sintaxe eu prefiro?
Meus critérios são eficiência (este é o número um) e também legibilidade / manutençã
Est
A <- B[A, on = .(id)] # wow such. concision
Ou aquil
A[B, on = .(id), comment := i.comment]
Or even (como PoGibas sugere):
A <- merge(A, B, all.x = TRUE)
Para completar, uma maneira mais básica é usarmatch()
:
A[, comment := B[chmatch(A[["id"]], id), comment]]
Exemplo de dados:
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"))