

RでCSVファイルを読み込もうとするとエラーが発生してしまいます。  
具体的には

[code]

    > data <- read.csv("sample1.csv",fileEncoding="utf-8")
    
[/code]

で実行すると

[code]

     警告メッセージ: 
    1:  read.table(file = file, header = header, sep = sep, quote = quote,  で: 
       入力コネクション 'sample1.csv' に不正な入力がありました 
    2:  read.table(file = file, header = header, sep = sep, quote = quote,  で: 
      incomplete final line found by readTableHeader on 'sample1.csv'
    
[/code]

と表示されます。csvファイル自体は

[code]

    1,1
    
[/code]

という極めてシンプルなものにしてみましたがダメでした（Excelからcsvとして保存してます）。


CC BY-SA 4.0
2019-07-14T07:14:38.107
56634
2019-10-29T09:52:33.293
2019-07-14T09:55:22.313
3060
35104
question
r csv
RでCSVファイルが読み込めない


BOMが含まれていることと、最終行に改行がないこと、そして見出し行がないことがメッセージの原因だと思います。CSVファイルの最終行に改行を追加して、以下のようにするとどうでしょうか。

[code]

    data <- read.csv("sample1.csv",fileEncoding="UTF-8-BOM",header=F)
    
[/code]


CC BY-SA 4.0
2019-07-14T13:47:09.213
56638
2019-07-14T13:47:09.213
28031
56634
answer


日本語版Windowsで作成された.csvファイルではないかと予想します。  
対応策は環境とファイルによってバラバラとなってしまいますので実際のファイルを見ないと  
Rのみでは対応が出来ないことが多いです。

最近多くの方に私が勧めているのが、「日本語を含むデータ」が来た際には、  
かならず一度「どの文字コードで来てもうまくUTF-8に変換してくれるプログラム」を通す方法です。

まず nkf プログラムをインストールします。  
ubuntuでしたら

[code]

    sudo apt install nkf
    
[/code]

nkf が使えるようになったら、Rから

[code]

    system(glue("find {conv2utf8_dir} -name '*.tsv' -print0 | xargs -0 nkf -Lu -w --overwrite"))
    
[/code]

と実行します。(glueパッケージを使っています。 conv2utf8_dir に処理対象ファイルがあるディレクトリパスを代入しておきます)

上記にて  
・文字コードを、全て UTF-8に変換  
・改行コードを、全てUnix標準(LF)に変換  
・元のファイルに対して上書きで保存

が実行されます。readr パッケージの read_delim 関数で、追加オプションゼロで開く事が出来ます。

以下解説です。  
全世界共通の文字コード「UTF-8」【以外】の文字コードで保存されたファイルは、長期的に見て大きな技術的負債になります。  
(各種クラウドサービスの殆どが対応していません。今後の対応予定もありません)

上記のワンライナーで、全て解決出来ますので  
データは「入ってきた時」に確実に変換して、「sjis/euc」文字コードのファイルを絶対に残さない事を強く勧めます。

(文字コード汚染は少し気を緩めると、ゴキブリよりしぶといです... **入り口で着実に処理しましょう！** )


CC BY-SA 4.0
2019-10-29T09:47:32.140
60073
2019-10-29T09:52:33.293
2019-10-29T09:52:33.293
32676
32676
56634
answer