我需要以批处理模式执行一些命令(例如,通过 Rscript)。它们以交互模式工作,但不能以批处理模式工作。这是一个最小的例子:sapply(1:3, is, "numeric")
. 为什么这在交互模式下工作但在批处理模式下返回错误?有没有办法让这样的命令在批处理模式下工作?
更具体地说,我需要编写脚本并以批处理模式运行它们。他们需要调用如下所示的函数(我没有编写也无法编辑):
testfun <- function (...)
{
args <- list(...)
if (any(!sapply(args, is, "numeric")))
stop("All arguments must be numeric.")
else
writeLines("All arguments look OK.")
}
我需要将一个列表传递给这个函数。类似的命令testfun(list(1, 2, 3))
在交互模式下工作。但是在批处理模式下,它会产生错误:Error in match.fun(FUN) : object 'is' not found
. 我试图debugger()
解决这个问题,但它没有给我任何洞察力。我还查看了 r-help、R 常见问题解答、R Inferno,但我找不到任何与此问题相关的内容。