R語言學習-JOIN的各種實現
阿新 • • 發佈:2019-01-06
library(data.table) library(dplyr) A<-data.table(X1=c("a","b","c","d","e"),Y1=c(1,2,3,4,5),Z1=c("num1","num2","num3","num4","num5")) A B<-data.table(X2=c("c","d","e","f"),Y2=c(4.4,5.5,6.6,7.7)) B #LEFT JOIN left_join(A,B,c("X1" = "X2")) merge(A,B, by.x = "X1", by.y = "X2",all.x=TRUE) X1 Y1 Z1 Y2 1 a 1 num1 NA 2 b 2 num2 NA 3 c 3 num3 4.4 4 d 4 num4 5.5 5 e 5 num5 6.6 #RIGHT JOIN right_join(A,B,c("X1" = "X2")) merge(A,B, by.x = "X1", by.y = "X2",all.y=TRUE) X1 Y1 Z1 Y2 1 c 3 num3 4.4 2 d 4 num4 5.5 3 e 5 num5 6.6 4 f NA <NA> 7.7 #INNER JOIN inner_join(A,B,c("X1" = "X2")) merge(A,B, by.x = "X1", by.y = "X2") X1 Y1 Z1 Y2 1 c 3 num3 4.4 2 d 4 num4 5.5 3 e 5 num5 6.6 #FULL JOIN full_join(A,B,c("X1" = "X2")) merge(A,B, by.x = "X1", by.y = "X2",all=TRUE) X1 Y1 Z1 Y2 1: a 1 num1 NA 2: b 2 num2 NA 3: c 3 num3 4.4 4: d 4 num4 5.5 5: e 5 num5 6.6 6: f NA NA 7.7