함수 인자 고치기
조화평균 함수가 거의 완성되었습니다. 하지만 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)