R での修正方法: 重複する 'row.names' は許可されません


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

 Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed 

このエラーは通常、ヘッダー行を除くファイル内の各行の末尾にカンマが含まれる CSV ファイルを R に読み取ろうとしたときに発生します。

このチュートリアルでは、このエラーを修正する方法を正確に説明します。

エラーを再現する方法

my_data.csvという次の CSV ファイルがあるとします。

ヘッダー行を除くファイル内の各行の末尾にはカンマがあることに注意してください。

ここで、このファイルを R にインポートしようとするとします。

 #attempt to import CSV into data frame
df <- read. csv (' my_data.csv ')

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed

ヘッダー行を除くファイル内の各行の末尾にカンマがあり、R が値の最初の列が行名であると認識するため、エラーが発生します。

行のうち 2 つは同じシード値 (4) を持っているため、R は行名が重複していると考えます。

エラーを修正する方法

このエラーを修正する方法は、ファイルをインポートするときにrow.names=NULLを使用するだけです。

 #import CSV file into data frame
df <- read. csv (' my_data.csv ', row.names =NULL)

#view data frame
df

  row.names column1 column2 column3
1 4 5 7 NA
2 4 2 1 NA
3 7 9 0 NA

CSV ファイルは正常にインポートできましたが、列名が間違っています。

この問題を解決するには、列名を変更してから最後の列を削除します。

 #modify column names
colnames(df) <- colnames(df)[2: ncol (df)]

#drop last column
df <- df[1:( ncol (df)-1)]

#view updated data frame
df

  column1 column2 column3
1 4 5 7
2 4 2 1
3 7 9 0

データ フレームは正しい形式になりました。

関連: R で ncol 関数を使用する方法

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。

R での修正方法: 名前が以前の名前と一致しない
R での修正方法: 長いオブジェクトの長さが短いオブジェクトの長さの倍数ではありません
R での修正方法: コントラストは 2 レベル以上の因子にのみ適用できます。

コメントを追加する

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