在R中读取不确定长度的二进制数据

发布于 2024-08-04 03:18:29 字数 205 浏览 1 评论 0原文

我想直接从 R 中的 URL 读取长度不确定的二进制文件。使用 readBin 从 URL 读取而不指定文件大小是行不通的。

 anImage <- readBin('http://user2010.org/pics/useR-large.png','raw')

还有另一种方法可以实现这一点吗?

I would like to read a binary file -- of indeterminate length -- directly from a URL in R. Using readBin to read from a URL, without specifying the file size, does not work.

 anImage <- readBin('http://user2010.org/pics/useR-large.png','raw')

Is there another approach that would allow this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

宁愿没拥抱 2024-08-11 03:18:29

这会将文件下载到工作目录,但不会直接下载到内存中。

download.file('http://user2010.org/pics/useR-large.png', 'anImage.png')

Rcurl 包也可以执行您想要的操作。 (由于SO限制,链接未发布)

This will download the file to the working directory, but not directly into memory.

download.file('http://user2010.org/pics/useR-large.png', 'anImage.png')

The Rcurl package may also do what you want. (link not posted because of SO restrictions)

合久必婚 2024-08-11 03:18:29

一个简单的解决方案是将“n”设置为相当大,读取文件,检查可能的溢出,并在必要时重试。

N <- 1e7
repeat
{
   anImage <- readBin(filename, 'raw', n=N)
   if(length(anImage) == N) N <- 5 * N else break
}

A simple solution if to set 'n' to be reasonably large, read the file, check for possible overflow, and try again if necessary.

N <- 1e7
repeat
{
   anImage <- readBin(filename, 'raw', n=N)
   if(length(anImage) == N) N <- 5 * N else break
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文