代码之家  ›  专栏  ›  技术社区  ›  Shane

用R压缩文件流?

  •  6
  • Shane  · 技术社区  · 14 年前

    我想创造一个R API for StackOverflow

    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中压缩这个文件?

    3 回复  |  直到 8 年前
        1
  •  11
  •   nico    14 年前

    你可以做:

    conn <- gzcon(url("http://api.stackoverflow.com/0.9/stats/"))
    data <- readLines(conn)
    
        2
  •  5
  •   Collin    14 年前

    尝试:

    p <- gzcon(url("http://api.stackoverflow.com/0.9/stats/"))
    readLines(p)
    
        3
  •  4
  •   Jyotirmoy Bhattacharya    14 年前

    理想情况下,我们应该告诉服务器我们可以处理gzip压缩的内容,从HTTP报头中找出内容实际上是gzip编码的,然后仅当它是gzip编码时才进行解压缩。Rcurl库可以执行以下操作:

    library(Rcurl)
    getURL("http://api.stackoverflow.com/0.9/stats/",
           .opts=list(encoding="identity,gzip")