Принудительно `read_tsv` для распаковки файла - PullRequest
2 голосов
/ 15 марта 2019

Мне интересно, есть ли способ заставить readr::read_tsv читать блочные файлы gzip с расширением .bgz. Я мог бы переименовать файлы, чтобы иметь .gz (который read_tsv автоматически распознает), который работает, но я не хочу делать это каждый раз, когда получаю новые файлы.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Вы можете передать объект соединения, а не путь к файлу. Например

read_tsv(gzfile("data.bgz"))

Функция gzfile () примет любое имя файла.

0 голосов
/ 15 марта 2019

Вы можете переименовать файл, если это bgz через R:

library(fs)
library(stringr)
library(readr)
# Regular expression to find your dataset file named datasetname
# You'll need to change that to the actual name
tsv_file <- dir_ls(".", regexp = "datasetname.*\\.b?gz")
if (str_detect(tsv_file, "bgz"))
    file_move(tsv_file, str_replace(tsv_file, "bgz$", "gz"))
dataset <- read_tsv(tsv_file)
...