在 R 中,gunzip 文件流?
我正在尝试为 StackOverflow 创建 R API。输出经过 gzip 压缩。例如:
readLines("http://api.stackoverflow.com/0.9/stats/", warn=F)
[1] "\037‹\b"
[2] "\030\002úØÛy°óé½\036„iµXäË–[<üt—Zu[\\VmÎHî=ÜÛݹ×ýz’Í.äûû÷>ý´\a\177Ýh÷\017îÝÛÙwßÚáÿþ«¼þý\027ÅrÝæÔlgüÀëA±\017›ìŽï{M¤û.\020\037�Ë\"¿’\006³ì\032„Úß9¸ÿ`¼ç÷³*~ÿKêˆð¡\006v¦ð²ýô£�ñÃ�ì+ôU�_\026滽�]êt¼·?ÞûÈ4ù%\016~S0^>àe¶ÀG\037½n³éÛôKê缬®‚\016Êê¢úý×u‰fó¶]=º{·aΚŽ—y{·©î\026‹‹»h5^-/‚W1 |9[UŲõ^§�Ç"
[3] ":¬´¿1M\177ð\"0íö¹ñ…YÞLëbÕ*!~â\027\036§çU�®êê¢ÎˆµhòýæÅ´Zn\036S¶Z•ùv[§óm´î�"
[4] "Í™t˪^d¥£·üÂ?¾ÿ\033'¿$ù\177"
有没有一种好的方法可以在 R 中对此进行压缩,而不需要将输出写入文件,对其进行压缩,然后将其读回?
I'm trying to create an R API for StackOverflow. The output is gzipped. For example:
readLines("http://api.stackoverflow.com/0.9/stats/", warn=F)
[1] "\037‹\b"
[2] "\030\002úØÛy°óé½\036„iµXäË–[<üt—Zu[\\VmÎHî=ÜÛݹ×ýz’Í.äûû÷>ý´\a\177Ýh÷\017îÝÛÙwßÚáÿþ«¼þý\027ÅrÝæÔlgüÀëA±\017›ìŽï{M¤û.\020\037�Ë\"¿’\006³ì\032„Úß9¸ÿ`¼ç÷³*~ÿKêˆð¡\006v¦ð²ýô£�ñÃ�ì+ôU�_\026滽�]êt¼·?ÞûÈ4ù%\016~S0^>àe¶ÀG\037½n³éÛôKê缬®‚\016Êê¢úý×u‰fó¶]=º{·aΚŽ—y{·©î\026‹‹»h5^-/‚W1 |9[UŲõ^§�Ç"
[3] ":¬´¿1M\177ð\"0íö¹ñ…YÞLëbÕ*!~â\027\036§çU�®êê¢ÎˆµhòýæÅ´Zn\036S¶Z•ùv[§óm´î�"
[4] "Í™t˪^d¥£·üÂ?¾ÿ\033'¿$ù\177"
Is there a good way to gunzip this in R, short of writing the output to file, gunzip'ing it, and reading it back in?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以这样做:
You could do:
尝试:
Try:
理想情况下,我们应该告诉服务器我们可以处理 gzip 压缩的内容,从 HTTP 标头中找出内容实际上是 gzip 编码的,然后仅在是时才解压缩。 Rcurl 库可以做到这一点:
Ideally we should tell the server that we can handle gzipped content, find out from the HTTP headers that the content is actually gzip encoded and then decompress only if it is. The Rcurl library can do this: