Aim:
我试图找到67种货币对美元的兑换率。
资料图:货币一览表如下:
currency <-c("ALL", "AMD", "AZN", "BIF", "BOB", "BRL", "BZD", "CLP", "CNY",
"COP", "CRC", "DOP", "EGP", "EUR", "GEL", "GHS", "GTQ", "HNL",
"HTG", "IDR", "ILS", "INR", "JOD", "KES", "KGS", "KHR", "LAK",
"LBP", "LRD", "LSL", "MDL", "MGA", "MMK", "MNT", "MWK", "MXN",
"MZN", "NAD", "NGN", "NIO", "NPR", "PEN", "PHP", "PKR", "PYG",
"RWF", "SBD", "SLL", "SRD", "SSP", "THB", "TJS", "TRY", "TZS",
"UAH", "UGX", "USD", "VND", "VUV", "WST", "XAF", "XCD", "XOF",
"YER", "ZAR", "ZMW", "ZWD")
我所做的:
使用
getQuote
功能来自
quantmod
图书馆,我能得到的大部分报价如下:
#Split list of 67 currencies into groups of 10
from_chunks <- split(currency),
ceiling(seq_along(currency)/10))
#Get length of each group
length_chunks <- lapply(from_chunks,length)
#Make a vector of length equalt to from_chunks with desired currency USD.
to_chunks <- lapply(length_chunks,rep,x="USD")
#Function that takes many currencies and converts them to one
quote_batches <- function(from,to){
return(quantmod::getQuote(paste0(from, to, "=X")))
}
#Apply to the entire list
mapply(quote_batches,from_chunks,to_chunks)
问题:
我遇到的问题以及将67种货币分成10组的原因是,并非所有的货币都在运行。块5和块7给出此错误:
Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
对于其余的块,它工作得很好:
为什么?请告知:)