как объединить несколько фреймов данных без потери данных в одном фрейме данных - PullRequest
1 голос
/ 18 марта 2019

Я могу объединить две данные

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.

Есть ли способ объединить столько данных, сколько у меня есть, без потери информации, но сохранить всю взаимную информацию по всем данным?

1 Ответ

1 голос
/ 18 марта 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...