R で異なる列を持つ 2 つのデータ フレームを結合する方法


R のdplyrパッケージのbind_rows()関数を使用すると、異なる列を持つ 2 つのデータ フレームをすばやく結合できます。

 library (dplyr)

bind_rows(df1, df2)

次の例は、この関数を実際に使用する方法を示しています。

例: 異なる列を持つ 2 つのデータ フレームを結合する

R に次の 2 つのデータ フレームがあるとします。

 #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

  ABC
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

  BCD
1 1 7 3
2 3 7 3
3 3 8 6
4 4 3 6
5 5 2 8

df1 には次の列名があることに注意してください。

  • もっている
  • B
  • VS

また、df2 には次の列名があることに注意してください。

  • B
  • VS
  • D

列名が一致しないため、R の rbind() 関数を使用しようとするとエラーがスローされます。

 #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

代わりに、 dplyr パッケージのbinding_rows()関数を使用して、これら 2 つのデータ フレームを結合し、結果のデータ フレームの欠損値を NA 値で単純に埋めることができます。

 library (dplyr)

#combine df1 and df2
bind_rows(df1, df2)

    ABCD
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 で 2 つの列を 1 つに結合する方法
R でデータ フレーム列をスタックする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です