Как позвонить в младший без поиска ~/.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.

Короче говоря: да, его всегда читают. Но да, вы также можете пропустить части, которые не хотите выполнять.

Другие вопросы по тегам