เขียนฟังก์ชันของตัวเอง (3)
ยังจำความแตกต่างระหว่างอาร์กิวเมนต์ที่มีและไม่มีค่าเริ่มต้นได้ไหม? ส่วน usage ในเอกสารของ sd() แสดงข้อมูลดังนี้:
sd(x, na.rm = FALSE)
ซึ่งหมายความว่า x ต้องระบุค่าเสมอเพื่อให้ sd() ทำงานได้ถูกต้อง ส่วน na.rm มีค่าเริ่มต้นอยู่แล้ว หากไม่ระบุอาร์กิวเมนต์นี้จะไม่เกิดข้อผิดพลาด
สามารถกำหนดค่าเริ่มต้นให้อาร์กิวเมนต์ในฟังก์ชัน R ของตัวเองได้เช่นกัน โดยใช้รูปแบบดังนี้:
my_fun <- function(arg1, arg2 = val2) {
body
}
ตัวแก้ไขโค้ดด้านขวามีฟังก์ชัน pow_two() เวอร์ชันที่ขยายเพิ่มเติมจากเดิมให้แล้ว ลองเติมโค้ดส่วนที่เหลือให้สมบูรณ์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
- เพิ่มอาร์กิวเมนต์เสริมชื่อ
print_infoโดยกำหนดให้มีค่าเริ่มต้นเป็นTRUE - ครอบฟังก์ชัน
print()ด้วยโครงสร้างif: ฟังก์ชันนี้จะทำงานก็ต่อเมื่อprint_infoเป็นTRUEเท่านั้น - ลองทดสอบฟังก์ชัน
pow_two()ที่เพิ่งเขียนได้เลย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Finish the pow_two() function
pow_two <- function(x) {
y <- x ^ 2
print(paste(x, "to the power two equals", y))
return(y)
}