通过 readRDS 从 .tar 文件中读取特定文件

Reading a specific file from a .tar file via readRDS

假设我有一个文件 data.tar,并且在这个 .tar 文件中我有一个名为 file_1.rds 的文件。有没有一种方法可以读取 file_1.rds(通过 readRDS())而无需先解包 data.tar.

这有点棘手,但以下是可行的:

tar_filename = 'data.tar'
rds_name = 'file_1.rds'

con = pipe(paste('tar xf', shQuote(tar_filename), '-O' , shQuote(rds_name)), 'rb')
result = readRDS(gzcon(con))
close(con)