R语言 网络数据
许多网站提供数据供其用户使用。例如,世界卫生组织(WHO)以CSV、txt和XML文件的形式提供健康和医疗信息的报告。使用R程序,我们可以以编程方式从此类网站中提取特定数据。R中用于从Web中提取数据的一些包是− “RCurl”,”XML”和”stringr”。它们用于连接到URL,识别所需文件的链接并将其下载到本地环境中。
安装R包
处理URL和文件链接需要以下包。如果它们在您的R环境中不可用,您可以使用以下命令安装它们。
install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")
输入数据
我们将访问天气数据的URL,并使用R下载2015年的CSV文件。
示例
我们将使用函数 getHTMLLinks() 来收集文件的URL。然后我们将使用函数 download.file() 将文件保存到本地系统。由于我们将重复应用同样的代码多次用于多个文件,因此我们将创建一个可以多次调用的函数。文件名以R列表对象的形式作为参数传递给这个函数。
# Read the URL.
url <- "http://www.geos.ed.ac.uk/~weather/jcmb_ws/"
# Gather the html links present in the webpage.
links <- getHTMLLinks(url)
# Identify only the links which point to the JCMB 2015 files.
filenames <- links[str_detect(links, "JCMB_2015")]
# Store the file names as a list.
filenames_list <- as.list(filenames)
# Create a function to download the files by passing the URL and filename list.
downloadcsv <- function (mainurl,filename) {
filedetails <- str_c(mainurl,filename)
download.file(filedetails,filename)
}
# Now apply the l_ply function and save the files into the current R working directory.
l_ply(filenames,downloadcsv,mainurl = "http://www.geos.ed.ac.uk/~weather/jcmb_ws/")
验证文件下载
运行上述代码后,您可以在当前的R工作目录中找到以下文件。
"JCMB_2015.csv" "JCMB_2015_Apr.csv" "JCMB_2015_Feb.csv" "JCMB_2015_Jan.csv"
"JCMB_2015_Mar.csv"