0

似乎当我littler从命令行调用时,它将 source ~/.Rprofile. 有没有办法阻止它采购〜/ .Rprofile?

4

1 回答 1

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。这是默认设置。没啥事儿。

其次,我添加了enfore交互模式-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

      }

   })

它控制着我在控制台、Emacs/ESS、RStudio 中的交互式 R 会话,以及r来自crontab.

简而言之:是的,它总是被阅读。但是,是的,您也可以跳过不想执行的部分。

于 2020-04-14T00:48:56.060 回答