在accepted answer on how to "correctly" specify optional arguments in R的一条评论中,@ LouisMaddox说
当你想对列表使用适当的检查提供的参数时,
missing()
是没用的。对于具有参数Foo
和可选开关bar
的函数a_or_b
(默认值&#34; a&#34;),您可以编写Foo <- function(bar, a_or_b=c("a", "b"))
...
是否有适当/推荐/惯用的方法来检查所提供的参数与可能的值列表?
我尝试查看graphics::plot.default
并瞥见graphics::par
,但无法通过这两个函数进行任何可理解的操作(例如,查看如何处理type
参数)。
例如,在type
参数的情况下,所有可能的值都是一个字母的字符串,所以我想在某处,有一个很大的switch
语句或一堆{{1语句。
答案 0 :(得分:1)
如果您有少量选项,请在函数中使用match.arg
。有关示例,请参阅?match.arg
。
如果有效参数是一个字母字符串,那么您将需要另一种方法,例如:
# returns logical
is_one_letter_string <- function(x) {
!missing(x) && length(x) == 1 && is.character(x) && x %in% c(letters, LETTERS)
}