Left_join по ссылке для data.table для дубликатов ключей - PullRequest
0 голосов
/ 25 июня 2019

Данные:

library(data.table)
A <- data.table(id = letters[1:10], amount = rnorm(10)^2)
B2 <- data.table(
  id = c("c", "d", "e", "e"), 
  ord = 1:4, 
  comment = c("big", "slow", "nice", "nooice")
)

Я пытаюсь присоединиться влево по ссылке, используя data.table, следуя этому решению :

A[B2, on = .(id), names(B2)[2:3] := mget(paste0("i.", names(B2)[2:3]))]

Что приводит кследующий вывод:

id amount     ord comment
 a  0.10210291 NA  NA     
 b  0.01255382 NA  NA     
 c  0.83172798  1  big    
 d  0.18312460  2  slow   
 e  0.98596235  4  nooice 
 f  0.78437310 NA  NA     
 g  6.34467810 NA  NA     
 h  1.12852702 NA  NA     
 i  0.23695322 NA  NA     
 j  0.48943532 NA  NA

В B2 data.table есть дубликат "e", поэтому я ожидал дополнительную строку в конечном выводе, которую я получаю, когда использую left_join из dplyr (игнорируйте разницув случайных числах в столбце «сумма»):

left_join(A, B2, by = "id")

id amount    ord comment
a  0.4778922 NA  NA     
b  1.4659516 NA  NA     
c  0.7857094  1  big    
d  0.6697439  2  slow   
e  0.2903246  3  nice <-
e  0.2903246  4  nooice 
f  6.8514519 NA  NA     
g  1.7866884 NA  NA     
h  0.9687253 NA  NA     
i  0.7872538 NA  NA     
j  2.0517777 NA  NA

Как получить такой же вывод через data.table по ссылке?

...