(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ファイルをいじっても良いのなら、最後のデータのあとに改行を挿入すると解決するが……。