sqldf icon indicating copy to clipboard operation
sqldf copied to clipboard

Line endings with read.csv.sql

Open ggrothendieck opened this issue 2 years ago • 0 comments

When using read.csv.sql if there are problems with the last column in the input that increases the chance that there are end of line problems.

read.csv.sql has an eol= argument which can specify the end of line character(s). It is automatically set to \r\n on Windows and \n otherwise but a file can have non-default line endings. One can check the line endings of a file using this from the shell or Windows cmd line (not from R):

file myfile

Another potential problem is a missing eol character(s) on the last line. This can be checked with the following which will return a number greater than 0 if there is a eol on the last line.

tail -c1 myfile | wc -l 

On Windows these commands can be found in C:\Rtools42\usr\bin if Rtools for R 4.2 is installed. See https://cran.r-project.org/bin/windows/Rtools/

On Linux the unix2dos and dos2unix (or on some systems fromdos and todos) can convert line endings. On Windows binaries are available at https://waterlan.home.xs4all.nl/dos2unix.html .

ggrothendieck avatar Oct 28 '22 12:10 ggrothendieck