2016-12-13 5 views
1

Я пытаюсь перебрать функции fevehicle() в пакете миль на галлон любезности:rOpengov/mpg, цикл по номерам VIN возвращает ошибку против одного использования?

https://github.com/rOpenGov/mpg

Я пытался кормить нескольких функций vinids, даже давая функцию 5 секунд отдыха между петлями на всякий случай, но я продолжаю получать HTTP-ошибку, хотя в одиночку, функция работает нормально. Есть идеи, что это может быть? Ниже приведен код:

#using a loop 
vin = c("19UUA86209A000532", "19UUA86239A021598", "19UUA8F20CA037748", "19UUA8F21CA008002", "19UUA8F21CA017878") 
for (i in vin) { 
    library(mpg) 
    print(i) 
    print(substr(i, 13, 17)) 
    q = substr(i, 13, 17) 
    z = feVehicle(q) 
    Sys.sleep(5) 
    z = t(unlist(z)) 

} 

or 
#using lapply to see a difference 
lapply(vin, feVehicle) 

как бросить следующее сообщение об ошибке:

[1] "19UUA86209A000532" 
[1] "00532" 
failed to load HTTP resource 
Error in t.default(unlist(z)) : argument is not a matrix 
> lapply(vin, feVehicle) 
failed to load HTTP resource 
failed to load HTTP resource 
failed to load HTTP resource 
failed to load HTTP resource 
failed to load HTTP resource  

Но когда я запускаю его только по одному за раз он работает отлично: миль на галлон :: feVehicle (00532)

Vehicle data: 
            value 
atvType       Diesel 
barrels08    16.616739130434784 
barrelsA08       0.0 
c240Dscr        NULL 
c240bDscr       NULL 
charge120        0.0 
charge240        0.0 
charge240b       0.0 
city08         21 
city08U        0.0 
cityA08         0 
cityA08U        0.0 
city 

ответ

0

Это потому, что в вашем единственном примере вы дали номер, но в цикле вы использовали символ:

#using a loop 
vin = c("19UUA86209A000532", "19UUA86239A021598", "19UUA8F20CA037748", "19UUA8F21CA008002", "19UUA8F21CA017878") 
for (i in vin) { 
    library(mpg) 
    print(i) 
    print(substr(i, 13, 17)) 
    q = substr(i, 13, 17) 
    z = feVehicle(as.numeric(q)) 
    Sys.sleep(5) 
    z = t(unlist(z)) 

} 
[1] "19UUA86209A000532" 
[1] "00532" 
[1] "19UUA86239A021598" 
[1] "21598" 
[1] "19UUA8F20CA037748" 
[1] "37748" 
[1] "19UUA8F21CA008002" 
[1] "08002" 
[1] "19UUA8F21CA017878" 
[1] "17878" 
+1

такая простая ошибка. Спасибо за помощь! – LoF10

+0

@ LoF10 Np. Интересный пакет! –