从字符向量 CSV 读取到 R 中的 tibble

Read from character vector CSV to tibble in R

TL;DR 我想知道 readr 或 tibble 或任何 base/tidyverse 是否可以从 CSV 行的字符向量中生成一个 tibble(就好像我在某些 CSV 上完成了 read_lines()文件)。

更多说明: 我正在将输出(从 processx 对象的标准输出)收集到一个字符向量中,这个输出实际上是一个 CSV 行,由子进程创建。我想把它变成一个 tibble,但我能找到的唯一函数是 data.table::fread(通过“文本”arg)。这是一个包,我真的不想仅仅为了这个功能而依赖 data.table。

我查看了 tidyverse 文档,但找不到任何内容。我意识到我可以编写自己的解析器,我开始用 map_def 和 str_split 来做,但后来我意识到有一些微妙之处,比如“如果它在引号内则忽略逗号”等。也许我是只是懒惰,但我真的不想在已经存在数百万的情况下实现完整的 csv 解析器。更不用说速度问题了。这个向量有时有 10k+ 行,我敢肯定我的自制方法不是最优化的。

欢迎任何想法。也许我应该咬紧牙关,要么编写解析器,要么使用 data.table,但我觉得我不能成为第一个想要这样做的人,而且必须有一些我缺少的内置 g。谢谢!

read.csv不行吗?

read.csv(
  text = "a,b
          1,2",
  header = TRUE
)

#   a b
# 1 1 2