สร้างฟังก์ชัน
คุณกำลังพัฒนาเครื่องมือสำหรับการทำ web scraping ให้มีประสิทธิภาพสูงสุดในงานด้าน data analyst ของ web agency
ในแบบฝึกหัดนี้ จะปรับปรุงฟังก์ชัน extractor จากแบบฝึกหัดก่อนหน้าให้เข้มงวดยิ่งขึ้น โดยหาก status code ที่ได้รับไม่อยู่ในช่วง 200 ถึง 203 ฟังก์ชันจะคืนค่าที่หายไป (NA) แต่ถ้าอยู่ในช่วงดังกล่าว ฟังก์ชันจะคืนค่า status code นั้น
โหลด purrr และ httr ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Functional Programming ระดับกลางด้วย purrr
คำแนะนำการฝึกหัด
ใช้ Negate กับ operator
%in%ซึ่งใช้ตรวจสอบว่าค่าทางซ้ายอยู่ในค่าทางขวาหรือไม่ประกอบฟังก์ชัน
extract_status()โดยรวมGET()และstatus_code()เข้าด้วยกันเติมโค้ดในฟังก์ชันที่กำหนดให้ครบ โดยดึง status code ของ
urlแล้วกำหนดให้กับตัวแปรcodeจากนั้นหากcodeไม่อยู่ในช่วง200:203ให้คืนค่าที่หายไป มิฉะนั้นให้คืนค่า status code นั้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Negate the %in% function
`%not_in%` <- ___(`%in%`)
# Compose a status extractor
extract_status <- ___(___, ___)
# Complete the function definition
strict_code <- function(url) {
# Extract the status of the URL
code <- ___(___)
# If code is not in the acceptable range ...
if (code ___ 200:203) {
# then return NA
return(___)
}
code
}