R中主键重复合并的结果

2020-10-13  本文已影响0人  生物信息与育种

R中主键重复了,多个表格合并后的结果如何?写一个示例:

> d1 <- data.frame(ID=c("a","a","b","b","d","e"),
+                  x1=runif(6),
+                  x2=runif(6))
> d1
  ID         x1         x2
1  a 0.48209267 0.95029420
2  a 0.48304094 0.62982656
3  b 0.69623971 0.09673196
4  b 0.06791925 0.18787976
5  d 0.17390752 0.99054750
6  e 0.81937498 0.71887856
> 
> d2 <- data.frame(ID=c("b","e","g","q"),
+                  x3=runif(4),
+                  x4=runif(4))
> d2
  ID         x3        x4
1  b 0.39280312 0.5555869
2  e 0.01482972 0.3024308
3  g 0.11249520 0.2579582
4  q 0.04065043 0.4562120
> 
> d3 <- data.frame(ID=c("a","g","p"),
+                  x5=runif(3),
+                  x6=runif(3))
> d3
  ID         x5        x6
1  a 0.30309046 0.1689388
2  g 0.01287808 0.5834867
3  p 0.29827180 0.5252750
> data <- Reduce(function(x,y)full_join(x,y,by="ID"),list(d1,d2,d3))
> data
  ID         x1         x2         x3        x4         x5        x6
1  a 0.48209267 0.95029420         NA        NA 0.30309046 0.1689388
2  a 0.48304094 0.62982656         NA        NA 0.30309046 0.1689388
3  b 0.69623971 0.09673196 0.39280312 0.5555869         NA        NA
4  b 0.06791925 0.18787976 0.39280312 0.5555869         NA        NA
5  d 0.17390752 0.99054750         NA        NA         NA        NA
6  e 0.81937498 0.71887856 0.01482972 0.3024308         NA        NA
7  g         NA         NA 0.11249520 0.2579582 0.01287808 0.5834867
8  q         NA         NA 0.04065043 0.4562120         NA        NA
9  p         NA         NA         NA        NA 0.29827180 0.5252750

可以看到,重复的键,合并后的值也是重复的。

上一篇 下一篇

猜你喜欢

热点阅读