首页 > 解决方案 > 在 R 中创建自动化命令以从 Knoema 中提取数据

问题描述

我正在尝试创建一种从KnoemaR 中的 API 中提取数据的自动化方式。到目前为止,我的代码运行良好。

library(Knoema)

Knoema('WLDGVTBOND2017', 
       list('timerange' = '01/01/2021-01/31/2021', 'frequency' = 'D', 
            'Bond' = '3MONTH;2YEAR;3YEAR;5YEAR;6YEAR;10YEAR;15YEAR;20YEAR;25YEAR;30YEAR', 
            'Country' = 'ZA', 'Indicator' = 'KN.I1'), type = 'DataFrame')

对于这个timerange论点,我想通过一个自动提取过去两个月数据的对象。像这样的东西。

library(lubridate)
library(Knoema)

range <- paste0(format(Sys.Date() - months(2),"%d/%m/%Y"),"-",format(Sys.Date(),"%d/%m/%Y"))

Knoema('WLDGVTBOND2017', 
       list('timerange' = range, 'frequency' = 'D', 
            'Bond' = '3MONTH;2YEAR;3YEAR;5YEAR;6YEAR;10YEAR;15YEAR;20YEAR;25YEAR;30YEAR', 
            'Country' = 'ZA', 'Indicator' = 'KN.I1'), type = 'DataFrame')

但是,当我运行它时,出现以下错误

Error: Client error: (400) Bad Request

有什么办法可以克服这个问题?

标签: rapi

解决方案


所需的格式是mdy您所拥有的dmy


library(lubridate)
library(Knoema)

range <- paste0(format(c(Sys.Date() - months(2), Sys.Date()), '%m/%d/%Y'), collapse = '-')


Knoema('WLDGVTBOND2017', 
            list('timerange' = range, 'frequency' = 'D', 
            'Bond' = '3MONTH;2YEAR;3YEAR;5YEAR;6YEAR;10YEAR;15YEAR;20YEAR;25YEAR;30YEAR', 
            'Country' = 'ZA', 'Indicator' = 'KN.I1'), type = 'DataFrame')

推荐阅读