Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R read.csv how to ignore carriage return?

I need to read a text file (tab-separated) that has some carriage returns inside some fields.

If I use read.table, it gives me an error:

line 6257 did not have 20 elements

If I use read.csv, it doesn't give an error, but creates a new line in that place, putting the next fields in the first fields of the new line.

How can I avoid this? I can't alter the file itself (the script is to be run elsewhere). Also the broken strings don't have quotation marks (no strings in the file have). One option would be to read the carriage return as a single space, or as \n, but how?

like image 267
Rodrigo Avatar asked Jun 11 '15 13:06

Rodrigo


1 Answers

Use read.table instead of read.csv and set allowEscapes to TRUE.

read.table("your/path",sep=",",allowEscapes=TRUE)

I tested w/ the following:

  1. wrote a csv file in excel

contents of csv file:

1,df,3,"4 
"
df,"df
",3,a

result:

  V1   V2 V3   V4
1  1   df  3 4 \n
2 df df\n  3    a
like image 63
jrdnmdhl Avatar answered Nov 11 '22 08:11

jrdnmdhl