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

标签 r multiline read.csv

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

最佳答案

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

这是一个例子:

> 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

这是 RFC 的相关部分:

  1. Fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes. For example:

    "aaa","b CRLF

   bb","ccc" CRLF
   zzz,yyy,xxx
  1. If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote. For example:

    "aaa","b""bb","ccc"

关于将多行文本 block 读入 R 中的单个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861749/

相关文章:

http-headers - 多行 HTTP header 混淆

android ellipsize 多行 TextView

R 函数 read.csv 失败, "scan() expected ' 是一个真实的',得到......“消息

r - 在 R 中使用 read.csv 跳过特定行

r - 如何及时了解 R 包中的已知错误和错误修复?

r - 数个维度

DT Shiny 中单列的渲染下拉列表

r - 使用 highcharter 自定义气泡图

android - 添加多行文本时按钮移动

r - 导出时,如何用单个空格替换read.csv()生成的列名中的 “.”?