a = data.table(id = c(1L, 1L, 2L, 3L, NA_integer_), t = c(1L, 2L, 1L, 2L, NA_integer_), x = 11:15)
b = data.table(id = 1:2, y = c(11L, 15L))
# > a
# id t x
# 1: 1 1 11
# 2: 1 2 12
# 3: 2 1 13
# 4: 3 2 14
# 5: NA NA 15
# > b
# id y
# 1: 1 11
# 2: 2 15
a[b, on=.(id), sum(x), by = .(id)]
# > a[b, on=.(id), sum(x), by = .(id)]
# id V1
# 1: 1 23
# 2: 1 13
왜 위 쿼리는 두 번째 행에서 id = 2, V1 = 13을 반환하지 않습니까? 나는 비록 by=.EACHI
를 이용하여 기대하는 것을 얻을 :data.table의`by`와`.EACHI`
a[b, on=.(id), sum(x), by = .EACHI]
# > a[b, on=.(id), sum(x), by = .EACHI]
# id V1
# 1: 1 23
# 2: 2 13
멋진 답변입니다. Btw, a = b (b, sum (y), on =. (id), by =. (t)]'- by = works이지만 y (b에서)는 찾을 수없는 또 다른 예입니다. – Frank