Как позвонить в младший без поиска ~/.Rprofile?
Кажется, когда я звоню littler
из командной строки он будет исходным ~/.Rprofile
. Есть ли способ предотвратить его поиск ~/.Rprofile?
1 ответ
Это идет в обе стороны --- что мы сейчас читаем ~/.Rprofile
в значительной степени из-за пользователей, которые хотели эту функцию, а не из-за того, что вы этого не хотели:)
Но есть (простое и легкое) исправление: используйте interactive()
. Свидетель:
edd@rob:~$ r -e 'print(interactive())'
[1] FALSE
edd@rob:~$ r -i -e 'print(interactive())'
Please do not apply R like a magic answers box, because you can mislead
others and cause harm.
-- Jeff Newmiller (about how much statistical knowledge is needed
for using R)
R-help (May 2016)
[1] TRUE
edd@rob:~$
Так что же здесь произошло? Сначала мы протестировалиinteractive()
. Он вернулсяFALSE
. Это значение по умолчанию. Ничего не произошло.
Во-вторых, я добавил-i
перейти в обязательный интерактивный режим. Он напечаталTRUE
, но больше. Почему?
Ну мой ~/.Rprofile
по сути выглядит так
## header with a few constant settings, mostly to options()
## TZ setting and related
local({ # start of large block, see Rprofile.site
if (interactive()) {
if (requireNamespace("fortunes", quietly=TRUE)) {
print(fortunes::fortune())
#more stuff
}
})
и это управляет моими интерактивными сеансами R на консоли, в Emacs/ESS, в RStudio и моими неинтерактивными r
звонки, скажем, crontab
.
Короче говоря: да, его всегда читают. Но да, вы также можете пропустить части, которые не хотите выполнять.