【发布时间】:2017-01-17 02:53:10
【问题描述】:
在 R 中,我写了一个类似的函数:
fun <- function(A, B, C, D) {}
所以,在这个函数的开头,我必须做参数检查:
- 是否缺少一些必需的参数
- 是否所有参数都遵循规则:class(data type) 或 A 必须在 [1:3] 范围内
但是关于这些参数,有些是必须的,有些不是,而且每个参数的class(data type)必须是我想要的,例如:numeric ,逻辑,等等...
为了做到这一点,我做了这样的事情:
if(A Follow_the_rule){}
if(B Follow_the_rule){}
if(C Follow_the_rule){}
...
关于上面的代码,需要很多 if 语句,我认为这不是检查参数的最佳方式。
那么有没有更好的方法来检查 R 中的参数?
任何帮助将不胜感激。
【问题讨论】:
-
if (missing(A)) stop ("A is missing") -
浏览一些包的源代码(在 Github 上最简单),看看有经验的包作者是如何做到这一点的。
-
If 条件当然可以做到这一点,但问题是如果我有很多参数,我必须写很多 If() stop() 语句,我认为这不是进行参数检查的最佳方式。感谢您的帮助。
-
同时检查来自 CRAN 的 checkmate 包。
标签: r parameter-passing