(2022/10/01追記)
Vroom 1.6.0で解決され、当該問題発生しないようになった様子。
(追記終了)
{readr}のread_csv()
で思いがけないFiles must end with a newline
エラーでCSVファイルが読み込めない事案に遭遇したのでメモしておく。
現在、エラー自体は開発側もISSUEで把握している様子?({vroom}
のISSUEにあった)だが、修正に至っていない様子。
自分の環境(Windows)でエラーが起こる条件
- CSVファイルの最後のデータのあとに改行されていないデータ
- このデータが、Downloadのディレクトリにあるか、ローカル環境とオンラインストレージで同期するディレクトリに存在する(Google DriveやOneDriveで確認)
- これを{readr}の
read_csv()
で読み込もうとする
とエラーが起こる。
このエラーはcsvファイルを読み込むときに使われている{vroom}
パッケージのvroom()
でのエラーの様子。
このファイルとまったく同じものが完全なローカル環境(同期していないDocument下など)にある場合には問題なく読み込める。
暫定的な解決策としては、ISSUEにもあるように、読み込もうとしたファイルがtest.csvの場合なら
vroom( iconv( "test.csv", to = "UTF-8" ) )
などとiconv()
を重ねるとうまくいくかもしれない。
あるいは、読み込みを組み込みのread.csv()
関数を使うか、{data.table}
のfread()
を使うとうまく読み込めるかもしれい。
あるいは、csvファイルをいじっても良いのなら、最後のデータのあとに改行を挿入すると解決するが……。