直接从环境中解压缩 R 对象



我有一个R对象(类:"原始"(加载到环境中。它是二进制格式。我知道这个(压缩的(R 对象包含一个文件(例如 pdf 或 txt 文件(。

我们称这个对象为:"zipped_r_object"。

我的计算机上没有保存原始文件。此对象是从数据库连接获取的。

这就是为什么我想直接从 R 环境中解压缩二进制/原始"zipped_r_object"并将解压缩的内容保存在新对象("unzipped_object"(中。这样,我可以进一步处理文件。

如何在 R 中执行此操作?我知道如何从保存在计算机上的已保存的zip存档中解压缩。但我似乎不能只在 R 环境中这样做。

非常感谢!

一种方法是将对象writeBin到文件中。

writeBin(zipped_r_object, "temp.zip")

您也可以将其写出到临时文件中,然后将unziplist = TRUE一起使用以查看存档中包含的文件的名称。

temp <- tempfile()
writeBin(zipped_r_object, temp)
unzip(temp, list = TRUE)

然后你可以把它解压缩到一个临时目录:

temp2 <- tempdir()
unzip(temp, temp2)
list.files(temp2)

我曾经遇到过类似的问题。在API请求之后,我得到了一个压缩的二进制文件,我必须通过以下方式解析该文件:

response.from.API.object
object.as.string.b64.binary = response.from.API.object$content
object.as.string.b64.dec = jsonlite::base64_dec(object.as.string.b64.binary)
base::writeBin(object.as.string.b64.dec, destination.fpath)

我认为你的zipped_r_object相当于我的object.as.string.b64.binary

就我而言,我必须将对象写入磁盘,然后从那里开始工作。

最新更新