R语言【技巧】——判断自定义函数的传参内容是否符合要求

1. 利用 if 条件判断,stop 语句报错

比如 对一个应该传入数值型,数值为 01 的参数:

R 复制代码
if(add.strat<0 | add.strat>1){
    stop("add.strat represents the fraction of pseudoabsences that are
         sampled environmentally stratified and should be between 0 and 1!")
  }

比如 对一个应该传入字符型,字符串为 某个向量元素之一 的参数,类似于选项框:

R 复制代码
possibtype=c("geographic","random","target.group","geo.strat","density",
               "env.strat","env.semi.strat")
  if(length(type)!=1 | !(type%in%possibtype)){
    stop("Invalid specification of pseudoabsence sampling type!")
  }

2. 利用 match.arg 语句判断传参是否在接收范围内

R 复制代码
match.arg(value, choices = c("spatialvalid", "flagged", "clean"))

match.arg(centroids_detail, choices = c("both", "country", "provinces"))

match.arg(outliers_method, choices = c("distance", "quantile", "mad"))
相关推荐
2501_945424804 分钟前
C++编译期矩阵运算
开发语言·c++·算法
yy我不解释9 分钟前
关于comfyui的mmaudio音频生成插件时时间不一致问题(三)
开发语言·python·ai作画·音视频·comfyui
2301_8154829310 分钟前
C++中的类型标签分发
开发语言·c++·算法
SuperEugene11 分钟前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
xushichao198916 分钟前
代码生成优化技术
开发语言·c++·算法
leaves falling25 分钟前
C++类和对象(1)
开发语言·c++
2401_8732046529 分钟前
模板编译期循环展开
开发语言·c++·算法
神舟之光44 分钟前
Java面向对象编程知识补充学习-2026.3.21
java·开发语言·学习
奶人五毛拉人一块1 小时前
C++入门学习
开发语言·c++·函数重载·入门·nullptr
吃不饱的得可可1 小时前
protobuf万字总结(C++)
开发语言·c++