在R中读取Web数据并获得奇怪的符号

时间:2015-08-18 14:59:46

标签: r

https://storage.googleapis.com/support-kms-prod/61064765E6620C413FE3010AC51BDFA9098F

我想将上述数据读入R中的数据框。我尝试过使用 readLines() 以及download.file()(使用" curl"方法),但我正在阅读一些奇怪的符号。

有没有人有关于如何阅读此内容的任何提示?

1 个答案:

答案 0 :(得分:0)

如果数据是可读的,在这种情况下是可读的,那么我发现提取它的最简单方法通常是手动选择你感兴趣的整个文本,粘贴它进入文本编辑器,修复select-copy-paste引入的任何小问题,然后将其保存为纯文本或CSV或制表符分隔文件。 Vim可以成为一个非常有用的工具。

我将表的整个内容复制到vim缓冲区中,然后必须进行32次更改以修复小问题。问题如下:

  1. 发生分页时有多余的空白行;我跑:g/^$/d来消除这些。
  2. 表中的某些单元格中嵌入了换行符;我通过连接线将这些规范化为空格。由于每行通常应该有三个分隔符(因为每行有四个单元格),因此我搜索^\([^\t]*\t\)\{0,2}[^\t]*$以查找少于三个分隔符的行。
  3. 然后我能够读取数据如下:

    df <- read.table('data.tsv',sep='\t',header=T,quote=NULL);
    head(df,50);
    ##               Retail.Branding     Marketing.Name         Device                     Model
    ## 1                                                        AD681H Smartfren Andromax AD681H
    ## 2                                                         FJL21                     FJL21
    ## 3                                                          Luno                      Luno
    ## 4                                                           T31             Panasonic T31
    ## 5                                                      hws7721g        MediaPad 7 Youth 2
    ## 6                          3Q            OC1020A        OC1020A                   OC1020A
    ## 7                     7Eleven              IN265          IN265                     IN265
    ## 8  A.O.I. ELECTRONICS FACTORY             A.O.I.     TR10CS1_11                   TR10CS1
    ## 9                   AG Mobile   AG_Go-Tab_Access      md789hwag          AG Go-Tab Access
    ## 10                  AG Mobile         AG_Tab_7_0     AG_Tab_7_0                AG_Tab_7_0
    ## 11                  AG Mobile              Ghost          Ghost                     Ghost
    ## 12                  AG Mobile             Status         Status                    Status
    ## 13                  AG Mobile              Swift          Swift                     Swift
    ## 14                  AG Mobile              ULTRA          Ultra                     Ultra
    ## 15                       AMTC AMTC MD1001 Tablet         MD1001                    MD1001
    ## 16                       AMTC        AMTC MD7008        MD7008A                    MD7008
    ## 17                       AMTC        AMTC MD7081        MD7081A                    MD7081
    ## 18                        AOC          A2272PWHT         AOC_WW                    G2SMNT
    ## 19                        AOC      AOC-A2272PW4T         AOC_WW                 G3SMNTA22
    ## 20                        AOC      AOC-A2272PW4T         AOC_WW                 G3SMNTA24
    ## 21                        AOC      AOC-A2472PW4T      G3SMNTA24                 G3SMNTA24
    ## 22                         AV               AV10     RCT6203W46                      AV10
    ## 23                         AV                AV7     RCT6773W22                       AV7
    ## 24                      AZBox            AZDroid        AZDroid                   AZDroid
    ## 25                      AZPEN         AZPEN A720      wing-inet                      A720
    ## 26                      AZPEN         AZPEN A920       wing-ibt                      A920
    ## 27                     Abocom       AboCom A08SM            A08                      A08S
    ## 28                       Acer                                C6                 Acer E320
    ## 29                       Acer                                C6          Acer E320-orange
    ## 30                       Acer                                C7                      E330
    ## 31                       Acer                               C8n                      E350
    ## 32                       Acer                                K3                      E130
    ## 33                       Acer                                T2                     AT390
    ## 34                       Acer                             T603T                     TD600
    ## 35                       Acer                                a3                    Stream
    ## 36                       Acer                                a5                      S300
    ## 37                       Acer                                c4                      E310
    ## 38                       Acer                                k4                      E140
    ## 39                       Acer                                k5                      E210
    ## 40                       Acer             A1-713   acer_aprilia                    A1-713
    ## 41                       Acer             A1-810          mango                    A1-810
    ## 42                       Acer             A1-811          mango                    A1-811
    ## 43                       Acer             A1-830         ducati                    A1-830
    ## 44                       Acer               A100        vangogh                      A100
    ## 45                       Acer               A101        vangogh                      A101
    ## 46                       Acer               A110           a110                      A110
    ## 47                       Acer             A3-A10           zara                    A3-A10
    ## 48                       Acer             A3-A11           zara                    A3-A11
    ## 49                       Acer             A3-A20    acer_harley                    A3-A20
    ## 50                       Acer          A3-A20FHD acer_harleyfhd                 A3-A20FHD
    

    我已在http://pastebin.com/RqWtwvej发布了固定的标签分隔文件,现在您可以运行

    df <- read.table('http://pastebin.com/download.php?i=RqWtwvej',sep='\t',header=T,quote=NULL);
    

    得到它。