시작하기무료로 시작하기

함수 인자 고치기

조화평균 함수가 거의 완성되었습니다. 하지만 na.rm 인자에 대한 몇 가지 점검을 추가해야 합니다. 이번에는 입력 형식이 올바르지 않을 때 오류를 내는 대신, 고쳐 보려고 합니다.

na.rm은 길이가 1인 논리형 벡터여야 합니다(즉, TRUE 또는 FALSE).

assertive 패키지는 미리 로드되어 있습니다.

이 연습은 강의의 일부입니다

R 함수 작성 입문

강의 보기

연습 안내

  • calc_harmonic_mean()를 업데이트해서 na.rm 인자를 고치세요. use_first()na.rm의 첫 번째 요소를 선택하고, coerce_to()로 논리형으로 변환하면 됩니다.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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)
코드 편집 및 실행