检索 fread 使用的列分隔符

Retrieve the column separator used by fread

fread 来自 data.table 包通常可以在读取文件时自动确定列分隔符 (sep)。

例如,此处 fread 自动检测 | 作为列分隔符:

library(data.table)
fread(paste(c("A|1", "B|2", "C|3"), collapse = "\n"))
#    V1 V2
# 1:  A  1
# 2:  B  2
# 3:  C  3

但是我如何才能检索最终被 fread(此处为 |)使用的列分隔符?

正如 Henrik 提到的,如果选择 verbose = TRUE,此信息将打印到控制台。您可以使用

捕获有关分隔符的打印信息
library(magrittr)
example <- paste(c("A|1", "B|2", "C|3"), collapse = "\n")
capture.output(fread(example, verbose = TRUE) %>% {NULL}) %>% 
    .[grepl('Detecting sep', .)]


#[1] "Detecting sep ... '|'"

您也可以根据 fread 如何找到定界符的描述来实现自己的定界符查找器:

Defaults to the first character in the set [,\t |;:] that exists on line autostart outside quoted ("") regions