【问题标题】:R user-defined function not seeing argumentR用户定义的函数没有看到参数
【发布时间】:2020-06-02 15:19:21
【问题描述】:

我正在尝试创建一个必须提供两个参数的函数。对于第一个参数,我可以输入任何内容,但对于第二个参数,只允许输入字符“A”或“B”。然后我希望在一个列表中返回两个参数。

myFunction <- function(var1, var2){

  if(missing(var1) | var1 == ""){stop("First argument is missing")}
  if(missing(var2) | var2 != "A" | var2 != "B"){stop("Second argument is missing. Accepted values: 'A' or 'B'")}

  myList <- list("out1" = var1, "out2"=var2)
  return(myList)
}

myFunction("Hello world!", "A")
Error in myFunction("Hello world!", "A") : 
  Second argument is missing. Accepted values: 'A' or 'B'

我错过了什么?

【问题讨论】:

  • 您需要在 var2 条件下使用 (var2 != "A" & var2 != "B") 而不是 or 。 (编辑:见下面的答案)

标签: r user-defined-functions


【解决方案1】:

这是你的布尔逻辑。

var2 is missing = F
var2 != 'A' = F
var2 != 'B' = T

F 或 F 或 T 的计算结果为 T

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多