24

行名が繰り返されているcsvファイルを読み込もうとしていますが、読み込めませんでした。私が受け取っているエラーメッセージはError in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed.

私が使用しているコードは次のとおりです。

S1N657 <- read.csv("S1N657.csv",header=T,fill=T,col.names=c("dam","anim","temp"))

私のデータの例を以下に示します。

did <- c("1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657")
aid <- c(101,102,103,104,105,106,107,108,109,110)
temp <- c(36,38,37,39,35,37,36,34,39,38)

data <- cbind(did,aid,temp)

どんな助けでもありがたいです。

4

7 に答える 7

33

関数は重複する行名を認識しているため、これに対処する必要があります。おそらく最も簡単な方法は、row.names = NULLを使用することです。これにより、行の番号付けが強制されます。つまり、最初の列が行番号ではなく最初の次元として扱われるため、行番号( "で始まる連続する整数)が追加されます。 1"。

read.csv("S1N657.csv", header=T,fill=T, col.names=c("dam","anim","temp"), row.names=NULL)
于 2010-11-01T04:51:28.547 に答える
3

これを試して:

S1N657 <- read.csv("S1N657.csv",header=T,fill=T,col.names=c("dam","anim","temp"), 
          row.names = NULL)[,-1]
于 2010-11-01T04:29:06.420 に答える
2

最近私が抱えていた問題は、ヘッダー行の列数がデータ自体の列数と一致しないことでした。たとえば、私のデータはタブ区切りであり、すべてのデータ行の末尾にタブ文字がありました。ヘッダー行(手動で追加しました)は追加しませんでした。

行に自動番号を付けたいのですが、代わりに最初の行を行名として見ていました。ドキュメントから(私が強調を追加):

row.namesは行名のベクトルです。これは、実際の行名を示すベクトル、行名を含むテーブルの列を示す単一の数値、または行名を含むテーブル列の名前を示す文字列にすることができます。

ヘッダーがあり、最初の行に含まれるフィールドが列数より1つ少ない場合、入力の最初の列が行名に使用されます。それ以外の場合、row.namesが欠落していると、行に番号が付けられます。

row.names = NULLを使用すると、行番号が強制されます。行がないかNULLのrow.namesは、「自動」と見なされる(as.matrixによって保持されない)行名を生成します。

ヘッダー行にタブ文字を追加すると、ヘッダー行の列数がデータ行と同じになり、問題が解決します。

于 2012-12-30T22:21:58.253 に答える
2

csvファイルがxlsxから変換されたものであると推測します。最初の行の最後にコンマを追加し、最後の行を削除して、完了します。

于 2014-04-16T13:29:52.533 に答える
1

つまり、列名を確認してください。最初の行が列の名前である場合、1つ以上の名前が欠落している可能性があります。

例:

"a","b","c"
a,b,c,d
a,b,c,d

上記の例では、各行に4つの値がありますが、名前が付けられているのは3つの列のみであるため、row.nameエラーが発生します。

これは、オンラインリソースからcsvを作成しているときに発生しました。

于 2016-10-05T15:48:11.393 に答える
1

小さなCSVで同じ「重複する'row.names'は許可されていません」というエラーが発生していました。問題は、14x14のグラフ領域の外側のどこかに、スペース/その他のデータを含むランダムなセルがあることでした。

「row.names=NULL」を実行したときに答えが見つかり、テーブルの下に複数の空白データの行がありました(したがって、複数の重複する行名はすべて「空白」です)。

解決策は、テーブル領域の外側のすべての行/列を削除することでした、そしてそれはうまくいきました!

于 2019-07-17T20:20:31.967 に答える
0

私の場合、問題はExcelファイルから発生しました。それは完全に整理されているように見えましたが、機能せず、私は常に次のメッセージを持っていました。Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed.

私は自分のExcelマトリックスを新しい空のExcelシートにコピーして貼り付けようとしましたが、それを読み直してみました。うまくいきました。エラーメッセージはもうありません!

于 2018-11-13T10:24:13.167 に答える