R のエラーを修正する方法: 名前が以前の名前と一致しない


R で発生する可能性のある一般的なエラーは次のとおりです。

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

このエラーは、 rbind()関数を使用して 2 つのデータ フレームをバインドしようとしたが、2 つのデータ フレームの列名が一致しない場合に発生します。

このチュートリアルでは、このエラーを解決するために使用できる正確な手順を共有します。

例: 「名前が前の名前と一致しない」を修正する方法

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

 #create and view first data frame
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df1

  var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2

#create and view first second frame 
df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

df2

  var3 var4
1 3 1
2 3 1
3 6 2
4 6 8
5 8 9

rbind()関数を使用してこれら 2 つのデータ フレームをバインドしようとすると、エラーが発生します。

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

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

このエラーは、2 つのデータ フレームの列名が一致しないために発生します。

最初のデータ フレームには次の列名があります。

  • var1
  • var2

2 番目のデータ フレームには次の列名が含まれています。

  • var3
  • var4

次のコードを使用して、2 つのデータ フレーム間で列名が同じかどうかを確認することもできます。

 #check if column names are identical between two data frames
identical(names(df1), names(df2))

[1] FALSE

列名が同じではないことがわかります。

このエラーを修正するには、2 番目のデータ フレームの列名を最初のデータ フレームの列名と一致するように手動で変更します。

 #define two data frames
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                  var2=c(7, 7, 8, 3, 2))

df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- c(' var1 ', ' var2 ')

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2
6 3 1
7 3 1
8 6 2
9 6 8
10 8 9

列名が一致したため、 rbind() が2 つのデータ フレームを正常にリンクしたことがわかります。

このエラーを修正するもう 1 つの方法は、 names()関数を使用して、最初のデータ フレームから 2 番目のデータ フレームに列名を自動的に割り当てることです。

 #define two data frames
df1 <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2))

df2 <- data. frame (var3=c(3, 3, 6, 6, 8),
                  var4=c(1, 1, 2, 8, 9))

#rename second data frame columns
names(df2) <- names(df1)

#row bind the two data frames
rbind(df1, df2)

   var1 var2
1 1 7
2 3 7
3 3 8
4 4 3
5 5 2
6 3 1
7 3 1
8 6 2
9 6 8
10 8 9

繰り返しになりますが、 rbind() は2 つのデータ フレームを正常にバインドできます。これは、これらのデータ フレームが同じ列名を共有しているためです。

追加リソース

R で rbind を使用する方法 (例あり)
R で cbind を使用する方法 (例あり)
R でデータ フレームに行を追加する方法

コメントを追加する

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