我需要读取一些文本文件(以制表符分隔),在某些字段中有一些回车。
如果我使用read.table,它会给我一个错误:
line 6257 did not have 20 elements
如果我使用read.csv,它不会给出错误,但会在该位置创建一个新行,将下一个字段放在新行的第一个字段中。
我该如何避免这种情况?我无法改变文件本身(脚本将在其他地方运行)。破碎的字符串也没有引号(文件中没有字符串)。一种选择是将回车读作单个空格,或者作为\ n,但是如何?
答案 0 :(得分:5)
使用read.table而不是read.csv并将allowEscapes设置为TRUE。
read.table("your/path",sep=",",allowEscapes=TRUE)
我测试了以下内容:
csv文件的内容:
1,df,3,"4
"
df,"df
",3,a
结果:
V1 V2 V3 V4
1 1 df 3 4 \n
2 df df\n 3 a