Как уже говорилось, вы обычно не можете этого сделать.Если вы взломаете свой Rprofile
или Rprofile.site
(см. «Запуск» для получения дополнительной информации или этот сайт ), вы можете обойти это, но код не переносится на другие компьютеры.Поэтому, если вы чувствуете себя действительно удачливым и дерзким, вы можете попытаться сделать следующее.
Вы добавляете этот код в файл Rprofile
или Rprofile.site
(который находится в папке / etc вашего Rустановить):
Args <- commandArgs(trailingOnly=TRUE)
if(length(Args)>0 & sum(grepl(" -f ",commandArgs()))==0 ){
if(grepl("(?i).r$",Args[1])){
File <- Args[1]
Args <- Args[-1]
tryCatch(source(File) , error=function(e) print(e) )
}
}
Это позволит вам сделать:
Rgui --args myscript.r arg1 arg2
Rscript myscript.r arg1 arg2
R --args myscript.r arg1 arg2
R -f myscript.r --args arg1 arg2
Аргумент --args позаботится о всплывающих окнах, о которых предупреждает @iterator.Код приведет к переменной Args
, которая содержится в базовой среде (которая не .GlobalEnv!).Эта переменная содержит все аргументы, кроме имени файла.Впоследствии вы можете получить к нему доступ из своего скрипта, например:
#dumb script
print(Args)
Если вызывается с помощью Rgui
или R
, также будет переменная File, которая содержит имя файла, который был получен.
Напоминаем, что изменение вашего rProfile не переносимо на другие компьютеры.Так что это только для личного использования.Вы также можете не указывать -f в качестве параметра после --args, иначе вы получите ошибки.
Редактировать: лучше искать «-f», чем «-f», так как это может произойти в «пути»./to/new-files/".