开始使用免费开始使用

修正函数参数

调和平均函数已接近完成。不过,您仍需对 na.rm 参数做一些检查。这一次,您不会在输入格式不正确时抛出错误,而是尝试将其修正。

na.rm 应该是只包含 1 个元素的逻辑向量(即 TRUEFALSE)。

已为您加载 assertive 包。

本练习是课程的一部分

R 函数编写入门

查看课程

练习说明

  • 更新 calc_harmonic_mean(),通过使用 use_first() 选择 na.rm 的第一个元素,并使用 coerce_to() 将其转换为逻辑类型,以修正 na.rm 参数。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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)
编辑并运行代码