我可以合并两个数据
df1 <- read.table(text="info var1m pos_var1
1 C001 NA NA
2 C002 NA NA
3 C003 0.1790000 1
4 C004 NA NA
5 C007 0.0645000 1
6 C010 0.3895000 1
11 C016 0.2805000 1
12 C017 0.7805001 1", header=T, stringsAsFactors=F)
and this
df2 <- read.table(text="info var1 var2
1 C003 0.1790 1.1305
2 C007 0.0645 0.2985
3 C010 0.3895 0.1705
4 C016 0.1740 0.3980
5 C017 0.4840 0.3375
6 C022 0.1740 0.3980
7 C023 0.4840 0.3375", header=T, stringsAsFactors=F)
df3 <- read.table(text="info var1 var2
5 C017 0.4840 0.3375
6 C022 0.1740 0.3980
7 C023 0.4840 0.3375", header=T, stringsAsFactors=F)
我仅举一个我要组合的三个数据集的示例。我不应该将它们两三结合起来,因为那样我会丢失一些信息
例如,为了将其中的两个结合在一起,我可以执行以下操作
mydf <- inner_join(df1,df2,'info')
然后将第三,第四等数据集合并到其中。但是,如果我在df1,df2中没有相互数据并合并,它将被丢弃,但在df1和df3中可能有相似的数据。
有没有一种方法,我可以在不丢失信息的情况下合并尽可能多的数据,但可以保留所有数据中的所有共同信息?
答案 0 :(得分:1)
library(dplyr)
mydf <- df1 %>%
full_join(df2) %>%
full_join(df3)
输出:
> mydf
info var1m pos_var1 var1 var2
1 C001 NA NA NA NA
2 C002 NA NA NA NA
3 C003 0.1790000 1 0.1790 1.1305
4 C004 NA NA NA NA
5 C007 0.0645000 1 0.0645 0.2985
6 C010 0.3895000 1 0.3895 0.1705
7 C016 0.2805000 1 0.1740 0.3980
8 C017 0.7805001 1 0.4840 0.3375
9 C022 NA NA 0.1740 0.3980
10 C023 NA NA 0.4840 0.3375