对不合适的参数抛出错误
如果用户向函数提供了不合适的输入,最佳做法是抛出错误并告知他们。遵循两条规则:
- 一旦发现有问题,就立刻抛出错误信息(通常在函数开头)。
- 让错误信息易于理解。
您可以使用 assertive 包中的 assert_*() 函数来检查输入,并在检查失败时抛出错误。
本练习是课程的一部分
R 函数编写入门
练习说明
- 在
calc_harmonic_mean()的函数体中添加一行,断言x为数值型。 - 请观察:当您向
calc_harmonic_mean()传入字符型参数时会发生什么。
交互式实操练习
通过完成这段示例代码来试试这个练习。
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)