从R行获取列表

时间:2015-06-14 18:39:44

标签: r dataframe xls

我有档案,你可以在这里查看:     http://www.nbp.pl/kursy/Archiwum/archiwum_tab_a_1999.xls

我想将此文件的第一行放入列表中。 当我这样做时:

dane <- read.xls("http://www.nbp.pl/kursy/Archiwum/archiwum_tab_a_1999.xls")
names(dane)

我收到了列表,但有一些奇怪的值,比如X1,X2。 我想要这些元素的列表:Nr / No.数据/日期1 USD 1 EUR 1 AUD等。

编辑:

dput(dane)的结果:

http://pastebin.com/5YZwMx6a

编辑2:

姓名(丹麦人)的结果:

[1] "X"                               "X.1"                            
[3] "W.A.L.U.T.A.....C.U.R.R.E.N.C.Y" "X.2"                            
[5] "X.3"                             "X.4"                            
[7] "X.5"                             "X.6"                            
[9] "X.7"                             "X.8"                            
[11] "X.9"                             "X.10"                           
[13] "X.11"                            "X.12"                           
[15] "X.13"                            "X.14"                           
[17] "X.15"                            "X.16"                           
[19] "X.17"                            "X.18"                           
[21] "X.19"                            "X.20"                           
[23] "X.21"                            "X.22"    

2 个答案:

答案 0 :(得分:4)

问题是你的第一行是一堆合并的单元格。您应该尝试删除第一行的已编辑版本。enter image description here

我不清楚read.xls是否会尊重跳过行的请求,但确实如此:

> input <- gdata::read.xls("~/Downloads/archiwum_tab_a_1999.xls", skip=1)
> str(input)
'data.frame':   254 obs. of  28 variables:
 $ Nr...No.   : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Data...Date: Factor w/ 254 levels "1999-01-01","1999-01-04",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ X1.USD     : num  3.5 3.45 3.41 3.41 3.46 ...
 $ X1.EUR     : num  4.09 4.07 4.02 4.01 4.02 ...
 $ X1.AUD     : num  2.15 2.13 2.12 2.13 2.17 ...
 $ X1.ATS     : num  0.297 0.296 0.292 0.291 0.292 ...
 $ X100.BEF   : num  10.14 10.08 9.98 9.94 9.96 ...
 $ X1.CZK     : num  0.117 0.116 0.115 0.115 0.115 ...
 $ X1.DKK     : num  0.548 0.546 0.54 0.538 0.54 ...
 $ X1.FIM     : num  0.688 0.684 0.677 0.674 0.676 ...
 $ X1.FRF     : num  0.624 0.62 0.614 0.611 0.613 ...
 $ X100.GRD   : num  1.25 1.25 1.24 1.23 1.24 ...
 $ X100.ESP   : num  2.46 2.44 2.42 2.41 2.42 ...
 $ X1.NLG     : num  1.86 1.85 1.83 1.82 1.82 ...
 $ X1.IEP     : num  5.2 5.16 5.11 5.09 5.1 ...
 $ X100.JPY   : num  3.09 3.04 3.06 3.05 3.11 ...
 $ X1.CAD     : num  2.29 2.26 2.24 2.26 2.28 ...
 $ X100.LUF   : num  10.14 10.08 9.98 9.94 9.96 ...
 $ X1.NOK     : num  0.461 0.459 0.458 0.459 0.466 ...
 $ X100.PTE   : num  2.04 2.03 2.01 2 2 ...
 $ X1.DEM     : num  2.09 2.08 2.06 2.05 2.06 ...
 $ X1.CHF     : num  2.55 2.52 2.49 2.49 2.49 ...
 $ X1.SEK     : num  0.431 0.429 0.428 0.431 0.438 ...
 $ X100.HUF   : num  1.62 1.62 1.6 1.6 1.61 ...
 $ X1.GBP     : num  5.76 5.72 5.65 5.67 5.7 ...
 $ X100.ITL   : num  0.211 0.21 0.208 0.207 0.208 ...
 $ X1.XDR     : num  4.93 4.86 4.81 4.83 4.84 ...
 $ X          : logi  NA NA NA NA NA NA ...

答案 1 :(得分:2)

那是因为你的文件的第一行是:“W a l u t a / C u r r e n c y”。您的实际列名称位于第二行。

您可以先下载该文件,然后使用以下方式阅读:

library(readxl)
dane <- read_excel("archiwum_tab_a_1999.xls", skip = 1)

这将跳过第一行,您将获得正确的列名称:

> colnames(dane)
 [1] "Nr / No."    "Data / Date" "1 USD"       "1 EUR"       "1 AUD"       "1 ATS"       "100 BEF"     "1 CZK"      
 [9] "1 DKK"       "1 FIM"       "1 FRF"       "100 GRD"     "100 ESP"     "1 NLG"       "1 IEP"       "100 JPY"    
[17] "1 CAD"       "100 LUF"     "1 NOK"       "100 PTE"     "1 DEM"       "1 CHF"       "1 SEK"       "100 HUF"    
[25] "1 GBP"       "100 ITL"     "1 XDR"