5

我需要阅读一个文本文件(制表符分隔),其中一些字段中有一些回车符。

如果我使用 read.table,它会给我一个错误:

line 6257 did not have 20 elements

如果我使用 read.csv,它不会给出错误,而是在该位置创建一个新行,将下一个字段放在新行的第一个字段中。

我怎样才能避免这种情况?我无法更改文件本身(脚本将在其他地方运行)。损坏的字符串也没有引号(文件中没有字符串)。一种选择是将回车读取为单个空格或 \n,但如何?

4

1 回答 1

5

使用 read.table 而不是 read.csv 并将 allowEscapes 设置为 TRUE。

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

我测试了以下内容:

  1. 在excel中写了一个csv文件

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
于 2015-06-11T14:02:26.890 回答