如何从gzip压缩文件中读取两列数据框?

时间:2014-11-17 19:52:47

标签: r input dataframe

我有一个csv格式的gzip压缩数据文件,每行包含一个数字 id(0-9)后跟256灰度值。如何将此数据读入数据框?

该文件如下:http://statweb.stanford.edu/~tibs/ElemStatLearn/datasets/zip.train.gz

尝试的解决方案:首先,我手动解压缩文件,获取标题为" zip.train"的csv文本文件。然后我在R提示符下运行以下命令:

> df <- read.csv("zip.train")

不幸的是,这产生了一列而不是两列。还有,有办法避免从外部解压缩文件吗?

2 个答案:

答案 0 :(得分:1)

readLines连接上使用gzfile

来自?gzfile

readLines(zz <- gzfile("ex.gz"))
close(zz)

答案 1 :(得分:1)

将read.table与gzfile一起使用以存储到数据帧中:

a<-read.table(gzfile("zip.train.gz"))   

> a
     V1     V2     V3     V4     V5     V6     V7     V8     V9    V10    V11    V12    V13    V14
1     6 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.631  0.862 -0.167 -1.000 -1.000 -1.000
2     5 -1.000 -1.000 -1.000 -0.813 -0.671 -0.809 -0.887 -0.671 -0.853 -1.000 -1.000 -0.774 -0.180
3     4 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.996  0.147  1.000 -0.189
4     7 -1.000 -1.000 -1.000 -1.000 -1.000 -0.273  0.684  0.960  0.450 -0.067 -0.679 -1.000 -1.000
5     3 -1.000 -1.000 -1.000 -1.000 -1.000 -0.928 -0.204  0.751  0.466  0.234 -0.809 -1.000 -1.000
6     6 -1.000 -1.000 -1.000 -1.000 -1.000 -0.397  0.983 -0.535 -1.000 -1.000 -1.000 -1.000 -1.000
7     3 -1.000 -1.000 -1.000 -0.830  0.442  1.000  1.000  0.479 -0.328 -0.947 -1.000 -1.000 -1.000
8     1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.510 -0.213 -1.000 -1.000 -1.000 -1.000
9     0 -1.000 -1.000 -1.000 -1.000 -1.000 -0.454  0.879 -0.745 -1.000 -1.000 -1.000 -1.000 -1.000
10    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.909  0.801 -0.899 -1.000 -1.000 -1.000
11    7 -1.000 -1.000 -1.000 -1.000 -1.000 -0.596  0.912  1.000  0.290 -0.673  0.245  0.899  0.814
12    0 -1.000 -1.000 -1.000 -1.000 -1.000 -0.877  0.233  1.000  0.996  0.116 -0.896 -1.000 -1.000
13    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.998  0.613 -0.385 -1.000 -1.000 -1.000 -1.000
14    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.457 -0.219 -1.000 -1.000 -1.000 -1.000
15    7 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.632  0.632  0.740 -0.865 -1.000
16    7 -1.000 -1.000 -1.000 -0.929  0.351  0.798  0.806  0.114  0.015 -0.479 -0.925 -1.000 -1.000
17    4 -1.000 -1.000 -1.000 -1.000 -0.733 -0.916 -1.000 -1.000 -1.000 -0.674  0.988 -0.179 -1.000
18    8 -1.000 -1.000 -1.000 -1.000 -1.000 -0.992 -0.385 -0.143  0.462  1.000  0.975  0.092 -0.473
19    0 -1.000 -1.000 -1.000 -1.000 -1.000 -0.990  0.019  0.640 -0.553 -0.999 -1.000 -1.000 -1.000
20    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.254  0.241 -0.929 -1.000 -1.000 -1.000 -1.000
21    4 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.937  0.802 -0.284 -1.000 -1.000 -1.000
22    8 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.988  0.646  0.757 -0.220 -1.000 -1.000 -1.000
23    7 -1.000 -1.000 -1.000 -1.000 -0.869  0.777 -0.007 -0.697 -1.000 -1.000 -1.000 -1.000 -0.843
24    4 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.098 -0.191
25    8 -1.000 -1.000 -1.000 -1.000 -0.145  0.515  0.515  0.485 -0.062 -0.874  0.453  0.288 -0.804
26    7 -1.000 -1.000 -1.000 -1.000 -0.846 -0.011 -0.920 -1.000 -1.000 -1.000 -1.000  0.247  0.735
27    3 -1.000 -1.000 -1.000 -1.000 -1.000 -0.104  0.549  0.579  0.579  0.857  0.535 -0.888 -1.000
28    7 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.959 -0.161 -0.103  0.189  0.212
29    4 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.986  0.139  0.960
30    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.582  0.849  0.209 -1.000 -1.000 -1.000
31    3 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.107  1.000  1.000  0.877  0.250 -0.855 -1.000
32    6 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.270  0.973 -0.810 -1.000 -1.000
33    7 -1.000 -1.000 -1.000 -0.027  0.395 -0.948 -1.000 -1.000 -1.000 -0.850 -0.811 -0.811 -0.930
34    4 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.816  0.416 -1.000
35    1 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.766  0.960 -0.528 -1.000 -1.000 -1.000 -1.000
36    3 -1.000 -1.000 -1.000 -1.000 -0.674  0.492  0.573  0.755 -0.018 -0.290 -0.933 -1.000 -1.000
37    7 -0.201  0.752  1.000  1.000  0.793  0.515  0.515  0.765  0.970  0.515  0.574  0.926  0.515
38    7 -1.000 -1.000 -1.000 -1.000  0.781 -0.728 -1.000 -1.000 -0.918 -0.754 -0.754 -0.980 -1.000
        V15    V16    V17    V18    V19    V20    V21    V22    V23    V24    V25    V26    V27    V28
1    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.992  0.297  1.000  0.307 -1.000
2     0.052 -0.241 -1.000 -1.000 -1.000 -1.000  0.392  1.000  0.857  0.727  1.000  0.805  0.613  0.613
3    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.882  1.000
4    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.114  0.974  0.917  0.734  0.994  1.000  0.973
5    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.370  0.739  1.000  1.000  1.000  1.000  0.644
6    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.692  0.536 -0.767 -1.000 -1.000 -1.000
7    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.025  0.519  0.124  0.339  0.762  1.000  0.456 -0.707
8    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.292  0.792 -0.987 -1.000
9    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.716  0.804  1.000  0.420 -0.664 -1.000 -1.000
10   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.405  1.000 -0.396 -1.000
11   -0.450 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.973  0.563  1.000  1.000  1.000  1.000  1.000
12   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.981  0.126  1.000  1.000  1.000  1.000  0.677
13   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.720  0.992  0.084 -1.000 -1.000
14   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.706  0.255 -1.000 -1.000
15   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.096  0.970  0.959  0.994
16   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.880  0.901  1.000  1.000  1.000  1.000  1.000  0.853
17   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.685  0.332 -1.000 -1.000 -1.000 -0.082  1.000
18   -0.968 -1.000 -1.000 -1.000 -1.000  0.145 -0.186 -1.000 -0.884  0.958  1.000  1.000  1.000  1.000
19   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.748  0.979  1.000  1.000  0.012 -0.993
20   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.989  0.684  1.000  0.100 -1.000 -1.000
21   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.950  0.999  0.320 -1.000
22   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.566  0.295  0.984  0.198
23    0.417 -0.806 -1.000 -1.000 -1.000 -1.000 -1.000  0.212  1.000  1.000  0.996  0.975  0.683  0.226
24   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.583 -0.694 -1.000 -1.000 -1.000 -1.000 -1.000 -0.617
25   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.952  0.790  1.000  0.936  0.879  0.879  0.563 -0.401
26   -0.908 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.173  1.000  0.194 -0.273 -0.272  0.082  0.380
27   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.080  0.998  1.000  1.000  1.000  1.000
28   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.378  0.600  1.000  1.000
29   -0.833 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.657 -0.510 -1.000 -1.000 -1.000 -0.632
30   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.820  0.714  1.000  0.336 -1.000
31   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.229  0.987  0.866  0.339  0.854  1.000
32   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.728  0.812 -0.019 -1.000
33   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.494  1.000  0.920  0.887  0.887  0.887  0.976  1.000
34   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.170 -0.595 -1.000 -1.000 -1.000 -0.887
35   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.787  0.991  0.352 -1.000 -1.000
36   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.939 -0.103 -0.013 -0.195 -0.013  0.374  0.725
37    0.063 -0.420 -0.998 -1.000 -0.410 -0.091  0.192  0.394  0.394  0.185 -0.091 -0.091 -0.091 -0.091
38   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.801  0.714  0.303 -0.586  0.104  0.666  1.000  1.000
        V29    V30    V31    V32    V33    V34    V35    V36    V37    V38    V39    V40    V41    V42
1    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.410  1.000  0.986
2     0.860  1.000  1.000  0.396 -1.000 -1.000 -1.000 -1.000 -0.548  1.000  1.000  1.000  1.000  1.000
3     0.390 -0.811 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000
4     0.391 -0.421 -0.976 -1.000 -1.000 -1.000 -1.000 -1.000 -0.323  0.991  0.622 -0.738 -1.000 -0.639
5    -0.890 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.616  1.000  0.688 -0.455 -0.731
6    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.921  0.928 -0.118 -1.000 -1.000
7    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.965 -0.086
8    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.560  0.975
9    -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.978  0.713  1.000  0.027  0.408  0.947
10   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.072  1.000
11    1.000  1.000  0.939 -0.741 -1.000 -1.000 -1.000 -1.000 -1.000 -0.240  1.000  1.000  1.000  1.000
12   -0.948 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.514  0.998  1.000  0.989 -0.265
13   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.849  0.994  0.603
14   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.756  0.557
15   -0.018 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.418  0.984  0.791
16   -0.109 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.786  1.000  0.252 -0.505 -0.111
17   -0.091 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.981  0.719  0.673 -0.999 -1.000 -1.000
18    1.000  1.000  0.354 -1.000 -1.000 -1.000 -0.902  0.434  1.000  0.121 -0.970  0.828  1.000  1.000
19   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.946 -0.282 -0.059  0.999  1.000  1.000
20   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.987  0.840  1.000  0.856
21   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.723 -0.529  0.917
22   -0.986 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.660 -0.053 -0.053 -0.569
23    0.164  0.531  1.000 -0.231 -1.000 -1.000 -1.000 -1.000 -0.315  0.996  0.833  0.266 -0.024 -0.018
24    0.968 -0.363 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.071  0.644 -0.999 -1.000 -1.000 -1.000
25    1.000  0.724 -0.874 -1.000 -1.000 -1.000 -1.000 -1.000 -0.945  0.713  0.928 -0.758 -1.000 -1.000
26    0.963  0.912 -0.847 -1.000 -1.000 -1.000 -1.000 -1.000 -0.848  0.692  1.000  0.698  0.653  0.818
27    0.564 -0.722 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.801 -0.789 -0.789
28    1.000 -0.230 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.995 -0.522 -0.022  0.232  0.971  0.260
29    1.000 -0.330 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.647  0.877  0.608 -1.000 -1.000
30   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.318  1.000  0.778
31    0.639 -0.857 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.976  0.796  0.799 -0.855 -1.000
32   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.974  0.562  0.833
33    1.000  0.724 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.843  0.857  0.132  0.132  0.117 -0.170
34    0.923 -0.838 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000  0.497 -0.357 -1.000 -1.000
35   -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -0.868  0.856  0.868
36   -0.701 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000
37    0.310  0.394  0.602  1.000 -0.283 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000
38    0.520 -0.557 -1.000 -1.000 -1.000 -1.000 -1.000 -0.965  0.150  1.000  1.000  1.000  1.000  1.000