2015-06-14 2 views
1

У меня есть файл, когда и можно проверить здесь: http://www.nbp.pl/kursy/Archiwum/archiwum_tab_a_1999.xlsПолучение списка из ряда R

Я хочу, чтобы получить первую строку этого файла в списке. Когда я делаю это:

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 и т.д.

EDIT:

результат dput (Dane):

http://pastebin.com/5YZwMx6a 

EDIT 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"  
+0

Пост как отредактируйте результаты 'dput (dane)', введенные на консоль R. Похоже, вы получили автоматическое создание имен столбцов. Это не то, чего я ожидал бы после чтения страницы справки для 'read.xls' в gdata пакета, но вы не говорите, какой пакет использовался. –

+0

Я использую gdata – user3541098

+1

Если вывод 'dput (dane)' действительно является URL-адресом в интернет-местоположении, то что-то пошло не так. –

ответ

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 ... 
2

Это потому, что первая строка вашего файла является: «W aluta/C umm ". Фактические имена столбцов находятся во второй строке.

Вы можете загрузить файл, а затем прочитать его в:

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" 
Смежные вопросы