เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแก้ไข argument ของฟังก์ชัน

ฟังก์ชันค่าเฉลี่ยฮาร์มอนิกเกือบเสร็จสมบูรณ์แล้ว แต่ยังต้องเพิ่มการตรวจสอบ argument na.rm อีกเล็กน้อย คราวนี้แทนที่จะโยนข้อผิดพลาดเมื่อ input อยู่ในรูปแบบที่ไม่ถูกต้อง เราจะลองแก้ไขค่านั้นแทน

na.rm ควรเป็น logical vector ที่มีหนึ่งองค์ประกอบ (คือ TRUE หรือ FALSE)

โหลดแพ็กเกจ assertive ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Writing Functions in R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • อัปเดต calc_harmonic_mean() เพื่อแก้ไข argument na.rm โดยใช้ use_first() เพื่อเลือกองค์ประกอบแรกของ na.rm และใช้ coerce_to() เพื่อแปลงให้เป็น logical

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Update the function definition to fix the na.rm argument
calc_harmonic_mean <- function(x, na.rm = FALSE) {
  assert_is_numeric(x)
  if(any(is_non_positive(x), na.rm = TRUE)) {
    stop("x contains non-positive values, so the harmonic mean makes no sense.")
  }
  # Use the first value of na.rm, and coerce to logical
  ___ <- ___(___(___), ___ = "___")
  x %>%
    get_reciprocal() %>%
    mean(na.rm = na.rm) %>%
    get_reciprocal()
}

# See what happens when you pass it malformed na.rm
calc_harmonic_mean(std_and_poor500$pe_ratio, na.rm = 1:5)
แก้ไขและรันโค้ด