Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
直接从环境中解压缩R对象_R_Binary_Unzip - Fatal编程技术网

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

直接从环境中解压缩R对象,r,binary,unzip,R,Binary,Unzip,我有一个R对象(类:“raw”)加载到环境中。它是二进制格式的。我知道这个(压缩的)R对象包含一个文件(例如pdf或txt文件) 让我们把这个对象称为“压缩对象” 我没有将原始文件保存在我的计算机上。此对象是从数据库连接获取的 这就是为什么我想直接从r环境中解压二进制/原始的“zipped_r_对象”,并将解压后的内容保存在一个新对象(“unzipped_对象”)中。这样,我可以进一步处理该文件 我在R怎么做?我知道如何从计算机上保存的zip存档文件中解压缩。但我似乎无法在R环境中完全做到这一点

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

让我们把这个对象称为“压缩对象”

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

这就是为什么我想直接从r环境中解压二进制/原始的“zipped_r_对象”,并将解压后的内容保存在一个新对象(“unzipped_对象”)中。这样,我可以进一步处理该文件

我在R怎么做?我知道如何从计算机上保存的zip存档文件中解压缩。但我似乎无法在R环境中完全做到这一点


非常感谢

我曾经遇到过类似的问题。在一个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)
我认为您的
压缩的\u r\u对象
将等同于我的
对象.as.string.b64.binary


在我的例子中,我必须将对象写入磁盘,然后从那里开始工作

一种方法是将对象写入文件中

writeBin(zipped_r_object, "temp.zip")
您还可以将其写入临时文件,然后使用
解压
list=TRUE
查看存档中包含的文件名

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

temp-Thnx用于您的帖子!我对你的评论投了更高的票,因为解决方案是writeBin函数(写入磁盘并从磁盘获取)。但我必须将Ian Campbell的答案标记为“正确”。他的回答简洁而完整。这对我很有用!您使用(必要的)writeBin函数将我设置在正确的轨道上。他希望在记忆中做到这一切,但无法赢得所有。谢谢你简洁完整的回答。
temp2 <- tempdir()
unzip(temp, temp2)
list.files(temp2)