R语言技术需求:编写计算x平方根的函数,负数输入返回NA
实现需求的R安全平方根函数
嘿,这事儿不难,我给你写一个完全符合要求的R函数,还额外加了输入类型检查,避免非数值输入导致的奇怪问题:
safe_sqrt <- function(x) { # 检查输入是否为数值型,非数值直接抛出错误提示 if (!is.numeric(x)) { stop("参数x必须是数值型,请检查输入!") } # 若输入为负数,返回NA if (x < 0) { return(NA) } # 合法非负数时计算平方根 sqrt(x) }
函数细节说明:
- 函数命名为
safe_sqrt,和R内置的sqrt区分开,名字也能直观体现它的“安全”特性 - 第一步做输入类型校验:如果用户不小心传入字符串、逻辑值这类非数值参数,会直接抛出清晰的错误提示,不会让程序默默出问题
- 负数判断逻辑很直接:只要
x < 0就返回NA,完全符合你的需求 - 合法输入时,直接调用R内置的
sqrt()函数,保证计算效率和准确性
测试示例:
你可以运行下面的代码验证效果:
# 正数测试:返回2 safe_sqrt(4) # 0的测试:返回0 safe_sqrt(0) # 负数测试:返回NA safe_sqrt(-16) # 非数值测试:会抛出错误提示 safe_sqrt("hello")
内容的提问来源于stack exchange,提问作者rossio
相关产品推荐
相关产品推荐

