いくつかのコマンドをバッチ モードで実行する必要があります (例: 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 FAQ、R Inferno も調べましたが、この問題を説明するものは見つかりませんでした。