Rscript не распознает функцию setGeneric
Я пытаюсь преобразовать R-скрипт в то, что клиент может запустить в пакетном режиме. Мой код использует универсальные функции, и один фрагмент, который находится в начале, выглядит так:
setGeneric("testInput", function(inputData, params = list())
standardGeneric("testInput"))
Я использовал R CMD BATCH, и он отлично работает. Однако я не смог найти простой способ заставить мой скрипт выводить вывод на консоль, поэтому, основываясь на этом (и на предположении, что Rscript.exe - это "правильный" способ запуска R-файлов), я решил переключиться на Rscript. Однако при запуске того же самого файла.R с Rscript я получаю следующее:
Error: could not find function "setGeneric"
Execution halted
Я знаю, что это, вероятно, тривиальная причина, но я просто не могу понять это. Может кто-нибудь указать мне, где ошибка?
Какие-либо предложения?
1 ответ
setGeneric
является частью methods
пакет, который обычно загружается при запуске R в интерактивном сеансе, но не в неинтерактивном сеансе с использованием Rscript
или же littler
,
Так что вам нужно добавить require(methods)
перед звонком setGeneric
в вашем сценарии.
Например, этот код не будет работать
Rscript -e "setGeneric('mean', function(x) standardGeneric('mean'))"
Error: could not find function "setGeneric"
Execution halted
Но этот будет работать
Rscript -e "require(methods);setGeneric('mean', function(x) standardGeneric('mean'))"
Loading required package: methods
[1] "mean"