私は.csvファイルをRに読み込み、次の式を使用しようとしています:
pheasant<-read.table(file.choose(),header=TRUE,sep=",")
次の警告メッセージが表示されます。
"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."
この警告を引き起こしたと思われることがいくつかありますが、残念ながら、Rについて自分で問題を診断するのに十分な知識がないので、他の誰かが私のために診断できることを期待してここに投稿したいと思いました!
どんな助けや提案も真剣に感謝します!
このメッセージは、ファイルの最終行が行末(EOL)文字(改行(\n
)または復帰+改行(\r\n
))で終わっていないことを示しています。このメッセージの当初の意図は、ファイルが不完全である可能性があることを警告することでした。ほとんどのデータファイルには、ファイルの最後の文字としてEOL文字があります。
治療法は簡単です:
問題は簡単に解決できます。最後の行が空でなければならないためです。
あなたのコンテンツが
line 1,
line2
に変更する
line 1,
line2
(empty line here)
今日、以下のコマンドを使用して、Rを使用してJSONファイルを読み取ろうとしたときに、この種の問題に遭遇しました。
json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))
;上記の方法で解決します。
.xlsファイルではなく.csvファイルを選択したことを本当に確信していますか? .xlsファイルを読み取ろうとした場合にのみ、エラーを再現できます。 .csvファイルまたはその他のテキストファイルを読み取ろうとすると、表示されるエラーを再現できません。
> Data <- read.table("test.csv",header=T,sep=",")
> Data <- read.table("test.xlsx",header=T,sep=",")
Warning message:
In read.table("test.xlsx", header = T, sep = ",") :
incomplete final line found by readTableHeader on 'test.xlsx'
readTableHead
は、エラーを与えるC関数です。最初のn行(標準の最初の5行)を読み取って、データのタイプを判別しようとします。残りのデータは、scan()
を使用して読み込まれます。したがって、問題はファイルの形式です。
見つける方法の1つは、作業ディレクトリをファイルがあるディレクトリに設定することです。こうすると、読み込んだファイルの拡張子が表示されます。Windowsでは標準ではないので、csvであると信じているかもしれません。
次に行うべきことは、メモ帳またはワードパッド(または別のエディター)でファイルを開き、形式が私のファイルtest.csv
と同等であることを確認することです。
Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,
このファイルは次のデータフレームを提供します:
> read.table(testfile,header=T,sep=",")
Test1 Test2 Test3
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 NA
5 5 5 NA
6 NA 6 NA
Excelで保存されたcsv形式は、すべてのセルをコンマで区切ります。空のセルには値がありません。 read.table()
はこれを簡単に処理でき、空のセルを適切に認識します。
最初にファイルを文字ベクトルに読み込むには、readLines()
(warn = FALSE
を使用)を使用します。
その後、text =
オプションを使用して、read.table()
でベクターをデータフレームに読み込みます。
pheasant <- read.table(
text = readLines(file.choose(), warn = FALSE),
header = TRUE,
sep = ","
)
いくつかの答えが提供されているが、まだ実際には修正されていないことに気付きました。
前述の理由は、CSVファイルの最後に「行の終わり」がないことです。
実際の修正はマイクロソフトから提供されるはずですが、回避策は、テキストエディターでCSVファイルを開き、ファイルの最後に行を追加することです(別名、リターンキーを押します)。テキスト/コードエディタとしてATOMソフトウェアを使用していますが、基本的にすべての基本的なテキストエディタで使用できます。
それまでの間、バグをマイクロソフトに報告してください。
質問:それはオフィス2016の問題であるように思えます。誰かがPCで問題を抱えていますか?
同じメッセージを受け取りました。修正内容:.csvファイル内のすべての追加シート(タブ)を削除し、非数値文字を削除し、ファイルをコンマ区切りとして再保存し、標準言語を使用してR v 2.15.0にロードしました。
filename <-read.csv( "filename"、header = TRUE)
追加の安全対策として、csvを読み込む前にソフトウェアを閉じて開き直しました。
さまざまなヨーロッパのロケールでは、コンマ文字が小数点として機能するため、代わりにread.csv2関数を使用する必要があります。
.xlsx
の名前を.csv
に変更したときに、あなたが説明している問題が発生しました。
私にとってそれを修正したのは、「名前を付けて保存」してから.csv
として再度保存することでした。
Read.table引数のエンコーディングをfileEncoding = "UTF-16"からfileEncoding = "UTF-8"に変更することで、この問題を解決しました。
R自体を介してこの問題を修正するには、read.xlsx(..)
ではなくread.csv()
を使用しました。チャームのように動作します!!名前を変更する必要さえありません。 xlsxの名前をcsvに変更することは実行可能な解決策ではありません。
この問題は、ヘッダーの一部として一重引用符を使用したときに発生しました。削除すると(つまり、それぞれの列ヘッダーの名前がJimmy's data
からJimmys data
に変更された)、関数は警告を返しませんでした。
回避策は、テキストエディターでcsv
ファイルを開き、最後の値の余分なコンマを削除してからファイルを保存することでした。たとえば、次のファイルの
Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,,
6の後のコンマを削除してから、ファイルを保存します。
テキストラングラーまたはメモ帳++でファイルを開き、フォーマットを表示します。テキストラングラーでは、不可視を表示します。こうすると、改行文字やタブ文字を確認できます。Excelでは、最後の改行文字ではなく、さまざまな種類のタブが間違った場所に追加されることがよくありますが、これを表示するにはシンボルを表示する必要があります。
テキストエディターを使用して新しい行を挿入し、上記のトップアンサーで推奨されている行末文字を取得するなど、さまざまなソリューションを試しました。残念ながら、これらのどれも機能しませんでした。
最終的に動作する解決策私にとって非常に簡単でした:CSVファイルの内容をコピーして新しい空のCSVファイルに貼り付け、保存し、問題はなくなりました。
私は同様の問題を経験しましたが、これは一般的な警告のように見え、実際には行末文字に関連していないかもしれません。私の場合、使用しているファイルにキリル文字が含まれていたため、このエラーが発生していましたが、ラテン文字に置き換えるとエラーが消えました。