Получить разделитель столбцов, используемый fread - PullRequest
0 голосов
/ 01 мая 2018

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 (здесь |)?

1 Ответ

0 голосов
/ 01 мая 2018

Как упоминает Хенрик, эта информация выводится на консоль, если выбрано 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 находит разделитель:

По умолчанию первый символ в наборе [,\t |;:], который существует на строка autostart вне указанных ("") регионов

...