R คุณใช้ฟังก์ชันเป็นไหม? (2)
ได้มีการเตรียมตัวอย่างการใช้งานฟังก์ชัน interpret() ไว้ให้แล้ว ในแบบฝึกหัดนี้ คุณจะเขียนฟังก์ชันอีกตัวที่ใช้ interpret() เพื่อตีความข้อมูล ทั้งหมด จากจำนวนการเข้าชมโปรไฟล์รายวันที่เก็บอยู่ใน vector นอกจากนี้ ฟังก์ชันดังกล่าวยังสามารถคืนค่าผลรวมของการเข้าชมในวันที่ได้รับความนิยมได้ด้วยหากมีการร้องขอ การใช้ลูป for เหมาะอย่างยิ่งสำหรับการวนซ้ำทุก element ใน vector ส่วนความสามารถในการคืนค่าผลรวมนั้น สามารถกำหนดได้ผ่าน argument ของฟังก์ชันที่มีค่าเริ่มต้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
เติมโค้ดในเทมเพลตของฟังก์ชัน interpret_all() ให้สมบูรณ์:
- กำหนดให้
return_sumเป็น argument แบบ optional โดยมีค่าเริ่มต้นเป็นTRUE - ภายในลูป
forให้วนซ้ำทุกค่าในviews: ในแต่ละรอบ ให้บวกผลลัพธ์ของinterpret(v)เข้ากับcountโดยinterpret(v)จะคืนค่าvสำหรับวันที่ได้รับความนิยม และคืนค่า0ในกรณีอื่น พร้อมกันนั้นinterpret(v)จะแสดงผลลัพธ์บางอย่างออกมาด้วย - เติม
ifconstruct ให้สมบูรณ์: - ถ้า
return_sumเป็นTRUEให้ returncount - มิฉะนั้น ให้ return
NULL
จากนั้นเรียกใช้ฟังก์ชันที่เพิ่งสร้างนี้กับทั้ง linkedin และ facebook
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# The linkedin and facebook vectors have already been created for you
linkedin <- c(16, 9, 13, 5, 2, 17, 14)
facebook <- c(17, 7, 5, 16, 8, 13, 14)
# The interpret() can be used inside interpret_all()
interpret <- function(num_views) {
if (num_views > 15) {
print("You're popular!")
return(num_views)
} else {
print("Try to be more visible!")
return(0)
}
}
# Define the interpret_all() function
# views: vector with data to interpret
# return_sum: return total number of views on popular days?
interpret_all <- function(views, return_sum) {
count <- 0
for (v in views) {
}
if (return_sum) {
} else {
}
}
# Call the interpret_all() function on both linkedin and facebook