R - ข้อมูลเว็บ
เว็บไซต์จำนวนมากให้ข้อมูลสำหรับการบริโภคโดยผู้ใช้ ตัวอย่างเช่นองค์การอนามัยโลก (WHO) จัดทำรายงานเกี่ยวกับสุขภาพและข้อมูลทางการแพทย์ในรูปแบบไฟล์ CSV, txt และ XML การใช้โปรแกรม R เราสามารถดึงข้อมูลเฉพาะจากเว็บไซต์ดังกล่าวโดยใช้โปรแกรม แพ็กเกจบางอย่างใน R ซึ่งใช้ในการคัดลอกข้อมูลจากเว็บ ได้แก่ - "RCurl", XML "และ" stringr "ใช้เพื่อเชื่อมต่อกับ URL ระบุลิงก์ที่จำเป็นสำหรับไฟล์และดาวน์โหลดไปยังสภาพแวดล้อมภายในเครื่อง
ติดตั้งแพ็คเกจ R
แพ็กเกจต่อไปนี้จำเป็นสำหรับการประมวลผล URL และลิงก์ไปยังไฟล์ หากไม่มีใน R Environment ของคุณคุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้
install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")
ป้อนข้อมูล
เราจะไปที่ข้อมูลสภาพอากาศของ URL และดาวน์โหลดไฟล์ CSV โดยใช้ R สำหรับปี 2015
ตัวอย่าง
เราจะใช้ฟังก์ชัน 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"