R根据值列表正确检查提供的参数?

时间:2016-12-25 20:47:04

标签: r list function arguments optional-arguments

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语句。

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)
}