有很多很棒的R软件包 ,可让您使用一个函数从API导入数据。 但是,有时API没有已编写的函数。 好消息是,编写自己的代码很容易。
我将使用AccuWeather API对此进行演示,但是该过程和代码将适用于大多数其他使用密钥进行身份验证的API。
注册以访问API
如果您想继续,请访问developer.accuweather.com并注册一个免费帐户。 在“程序包和定价”下,选择“有限试用”,它允许每天进行50次API调用-如果您只想每天检查几次本地预测,就足够了,但对于任何面向公众的应用程序显然都不能满足要求。
如果没有立即为您提供创建应用的选项,请转到“我的应用”并创建一个新应用。
对于使用API的地方,我选择了其他;对于正在创建的内容,选择了内部应用程序;对于编程语言,我选择了其他(遗憾的是,R不是一个选择)。 应该为您的应用分配一个API密钥。
如果您不想将该API密钥硬编码到AccuWeather预测脚本中,请将其另存为R环境变量。 最简单的方法是使用usethis包。 usethis::edit_r_environ()
打开R环境文件进行编辑。 向该文件添加诸如ACCUWEATHER_KEY = 'my_key_string'
的行,保存文件,然后重新启动R会话。 现在,您可以使用Sys.getenv("ACCUWEATHER_KEY")
访问键值,而不必对值本身进行硬编码。
确定API的URL结构
对于这个项目,我将首先加载httr,jsonlite和dplyr软件包:httr用于从API获取数据,jsonlite用于解析它,以及dplyr最终使用管道(您也可以使用magrittr软件包)。