将多行文本块读入R中的单个向量

将多行文本块读入R中的单个向量,r,multiline,read.csv,R,Multiline,Read.csv,我有一个包含大量多行文本块的文件。我想把文件读入一个字符向量列表——每个块一个。我阅读了有关函数(如scan()、read.table()等)的文档,似乎表明行尾将结束向量。是否有一些选项或其他函数允许我指定一个分隔字符,并且在遇到该字符之前不会转到新向量?Rread.csv观察csv文件的格式,因此如果您的文件以这种方式格式化,它们将被正确读取。基本上,嵌入回车符的长文本字段如果用双引号括起来,将被读取为一个字段(包括换行符)。如果文本本身有引号呢?这就是问题所在,您试图阅读的文本中嵌入的引号

我有一个包含大量多行文本块的文件。我想把文件读入一个字符向量列表——每个块一个。我阅读了有关函数(如scan()、read.table()等)的文档,似乎表明行尾将结束向量。是否有一些选项或其他函数允许我指定一个分隔字符,并且在遇到该字符之前不会转到新向量?

R
read.csv
观察csv文件的格式,因此如果您的文件以这种方式格式化,它们将被正确读取。基本上,嵌入回车符的长文本字段如果用双引号括起来,将被读取为一个字段(包括换行符)。如果文本本身有引号呢?这就是问题所在,您试图阅读的文本中嵌入的引号必须替换为两个连续的引号(“”)

这里有一个例子:

以下是RFC的相关章节:

  • 包含换行符(CRLF)、双引号和逗号的字段 应该用双引号括起来。例如:

    “aaa”、“b、CRLF”

    bb,“ccc”CRLF

    zzz,yyy,xxx

  • 如果使用双引号括起字段,则使用双引号 出现在字段中时,必须在其前面加上 另一个双引号。例如:

    “aaa”、“b”、“bb”、“ccc”

  • > read.csv(stringsAsFactors = FALSE, text = '
    + id, text
    + 1, Hello World
    + 2, "Hello
    + World"
    + 3, "I say ""Hello 
    + World"" often"
    + ')
    
      id                         text
    1  1                  Hello World
    2  2                 Hello\nWorld
    3  3  I say "Hello \nWorld" often