Как объединить два фрейма данных в R с разными столбцами


Вы можете использовать функцию bind_rows() из пакета dplyr в R, чтобы быстро объединить два фрейма данных с разными столбцами:

library(dplyr)

bind_rows(df1, df2)

В следующем примере показано, как использовать эту функцию на практике.

Пример: объединение двух фреймов данных с разными столбцами

Предположим, у нас есть следующие два фрейма данных в R:

#define first data frame
df1 <- data.frame(A=c(1, 6, 3, 7, 5),
 B=c(7, 9, 8, 3, 2),
 C=c(3, 5, 2, 9, 9))

df1

 A B C
1 1 7 3
2 6 9 5
3 3 8 2
4 7 3 9
5 5 2 9

#define second data frame
df2 <- data.frame(B=c(1, 3, 3, 4, 5),
 C=c(7, 7, 8, 3, 2),
 D=c(3, 3, 6, 6, 8))

df2

 B C D
1 1 7 3
2 3 7 3
3 3 8 6
4 4 3 6
5 5 2 8

Обратите внимание, что df1 имеет следующие имена столбцов:

  • А
  • Б
  • С

И обратите внимание, что df2 имеет следующие имена столбцов:

  • Б
  • С
  • Д

Имена столбцов не совпадают, поэтому функция rbind() в R выдаст ошибку, если мы попытаемся ее использовать.

#attempt to use rbind to row bind data frames
rbind(df1, df2)

Error in match.names(clabs, names(xi)) : 
 names do not match previous names

Вместо этого мы можем использовать функцию bind_rows() из пакета dplyr, чтобы объединить эти два фрейма данных и просто заполнить недостающие значения в результирующем фрейме данных значениями NA:

library(dplyr)

#combine df1 and df2
bind_rows(df1, df2)

 A B C D
1 1 7 3 NA
2 6 9 5 NA
3 3 8 2 NA
4 7 3 9 NA
5 5 2 9 NA
6 NA 1 7 3
7 NA 3 7 3
8 NA 3 8 6
9 NA 4 3 6
10 NA 5 2 8

Дополнительные ресурсы

Как объединить два столбца в один в R
Как сложить столбцы фрейма данных в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.