R语言自定义函数如何校验参数是否仅包含单个数值元素
R自定义函数单数值参数合法性校验实现
你需要用到length()函数判断参数的元素数量,结合is.numeric()完成两项校验,用stop()抛出错误即可终止函数执行。
注:R中单独输入的单个数值本质也是长度为1的数值向量,因此通过
length(x) == 1即可准确限制参数只能是单个数值元素。
完整的函数示例(以计算输入值平方的函数为例):
calc_square <- function(x) { # 第一项校验:判断是否为数值类型 if (!is.numeric(x)) { stop("参数错误:输入必须为数值类型") } # 第二项校验:判断是否为单个元素 if (length(x) != 1) { stop("参数错误:仅支持输入单个数值,不允许传入多元素向量/列表") } # 函数核心运算逻辑 return(x ^ 2) }
测试效果说明:
- 合法输入调用:
calc_square(6)正常返回结果36 - 非数值输入:
calc_square("test")触发第一项校验,抛出对应错误提示,终止执行 - 多元素输入:
calc_square(c(2, 4, 6))触发第二项校验,抛出对应错误提示,终止执行
内容的提问来源于stack exchange,提问作者Ace123
相关产品推荐
相关产品推荐

