如何尝试在R中匹配错误的输入格式? function1

如何尝试在R中匹配错误的输入格式? function1,r,input,types,format,R,Input,Types,Format,向函数传入11会导致解释器出错,而不是函数调用。您需要使用,分隔参数,但即使这样,您也会得到一个错误,因为您没有设置为处理多个参数。您可以调用a(c(1,1))传入一个向量(这将起作用) 1\u 1不是有效标识符,因此您再次遇到解释器错误。将1 1传递给函数会导致语法错误,而不是格式错误。您无法捕获语法错误。。。(嗯,实际上有一些方法可以做到这一点,但我真的不鼓励…)这些方法是什么?为什么不鼓励呢?例如,如果您eval(parse())代码段,您可以捕获语法错误。但是如果你写了一段错误的代码,返

向函数传入
11
会导致解释器出错,而不是函数调用。您需要使用
分隔参数,但即使这样,您也会得到一个错误,因为您没有设置为处理多个参数。您可以调用
a(c(1,1))
传入一个向量(这将起作用)


1\u 1
不是有效标识符,因此您再次遇到解释器错误。

1 1
传递给函数会导致语法错误,而不是格式错误。您无法捕获语法错误。。。(嗯,实际上有一些方法可以做到这一点,但我真的不鼓励…)这些方法是什么?为什么不鼓励呢?例如,如果您
eval(parse())
代码段,您可以捕获语法错误。但是如果你写了一段错误的代码,返回NaN是没有意义的,代码必须是正确的,代码输入可能是错误的。。。问题是,你怎么可能把
a(11)
?如果
11
是用户输入,为什么不将其放入字符串(即
“11”
)中,然后在进行平方运算之前调用as.double?基本上,任何无效的输入都会以这种方式被捕获。。。那么,最后,你想完成什么?目的是检查用户的输入是否正确。仍然不太了解eval(parse())的用法。是否可以将默认语法错误消息修改为NaN?用户如何在两个括号之间输入“到达” ? 您是否只是将字符串
“a(“+userinput+”)
连接起来?如果是这样,只需执行
“a(“+userinput+”)”
将函数代码从
n^2
更改为
as.double(n)^2
。。。
function1 <- function(n) { n^2 }

a <- function(n) {
  tryCatch(function1(n),
    error = function(e) { return(NaN) })
}