强制 `read_tsv` 解压文件

Force `read_tsv` to decompress file

我想知道是否有办法让 readr::read_tsv 读取扩展名为 .bgz 的块 gzip 文件。我可以将文件重命名为 .gzread_tsv 自动识别),这确实有效,但我不想每次获得新文件时都这样做。

谢谢!

如果文件是 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)

您可以传递连接对象而不是文件路径。例如

read_tsv(gzfile("data.bgz"))

gzfile() 函数将采用任何文件名。