lưu ý: câu hỏi này và các câu trả lời sau đây đề cập đến các phiên bản data.table < 1.5.3; v. 1.5.3 đã được phát hành vào tháng 2 năm 2011 để giải quyết vấn đề này. thấy điều trị gần đây (03-2012): Translating SQL joins on foreign keys to R data.table syntaxCách thực hiện thao tác hợp nhất data.table
Tôi đã đào bới trong các tài liệu hướng dẫn cho data.table package (một sự thay thế cho data.frame đó là hiệu quả hơn cho các hoạt động nhất định), trong đó có Josh Reich's presentation on SQL and data.table at the NYC R Meetup (pdf), nhưng không thể hình dung hoạt động hoàn toàn tầm thường này.
> x <- DT(a=1:3, b=2:4, key='a')
> x
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> y <- DT(a=1:3, c=c('a','b','c'), key='a')
> y
a c
[1,] 1 a
[2,] 2 b
[3,] 3 c
> x[y]
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> merge(x,y)
a b c
1 1 2 a
2 2 3 b
3 3 4 c
Tài liệu nói "Khi [đối số đầu tiên] chính nó là dữ liệu.table, tham gia được gọi tương tự như base :: merge nhưng sử dụng tìm kiếm nhị phân trên khóa được sắp xếp". Rõ ràng nó không phải như thế. Tôi có thể lấy các cột khác từ y vào kết quả của x [y] với data.tables không? Có vẻ như nó chỉ lấy các hàng của x nơi khóa khớp với khóa của y, nhưng bỏ qua phần còn lại của y ...
Điều này đã được giải quyết bởi v1.5.3 được phát hành cho CRAN vào tháng 2 năm 2011. Hãy xem đó là TIN TỨC, mới? Data.table và sửa chữa FAQ. –