阅读带分隔符的文本没有换行符,并告诉多少列

问题描述

我有数百个文本分隔文件。在某些列中,行结尾之前的换行符出现在随机列中。尝试读取时,它会寻找正确的列数,但因为它会拆分到下一行。

arg fill=T无济于事,因为它会创建不正确的空列。

如果我有

"Aa|Bb|C\nc\ntwo|three|four"

但实际上应该是两行乘三列:

"Aa|Bb|Cc\ntwo|three|four"

我如何到达所有数据行(错误在整个过程中随机发生)?

解决方法

请注意,字符串中包含C\nc,该字符串将c引入到新行。我想您首先需要确保输入字符串的格式,否则很难通过后处理进行修复。

我不确定下面的代码是否是您想要的。您是说使用read.csv吗?

read.csv(text = sub("\n","",s),sep = "|",header = FALSE)

给出

   V1    V2   V3
1  Aa    Bb   Cc
2 two three four

如果您使用的是data.table,则可以尝试fread(感谢@akrun)

fread(sub("\n",s))

数据

s <- "Aa|Bb|C\nc\ntwo|three|four"