禁用/抑制 R 中 CRAN 镜像选择的 tcltk 弹出窗口

问题描述 投票:0回答:5

我的问题与之前发布的问题类似,但从未真正在这里得到解答:

禁用 R 中的 GUI、图形设备

我不喜欢用于 CRAN 镜像选择的 R tcltk 弹出窗口。当在两个包中搜索某个功能的帮助时,它们也会弹出来选择一个包。

有没有办法在不完全禁用X11的情况下禁用这些窗口?我仍然希望plot()命令正常工作,但禁用那些需要永远通过远程连接加载的小选择菜单。

例如,如果您使用 ssh,但不使用 -X,那么镜像选择只是 R 中的文本,您键入一个数字。它很快。这就是我想要的,但是为图 b 保留 X11。

有人知道如何维护图形窗口但禁用“选择”tcltk 窗口吗?

r user-interface popup x11 cran
5个回答
35
投票

德克提供了完全避免菜单的方法,但为了回答你提出的问题,我想你想要

options(menu.graphics=FALSE)

我通过查找从

help
返回的对象类(它是
help_files_with_topic
)、扫描
utils:::print.help_files_with_topic
并找到行

来跟踪此选项
menu(txt, title = gettext("Choose one"), graphics = getOption("menu.graphics"))

12
投票

只需在启动文件中设置镜像即可。我的

~/.Rprofile
中有这个,但我从未看到该提示:

## Default repo
local({r <- getOption("repos");
       r["CRAN"] <- "http://cran.us.r-project.org"; 
       options(repos=r)})

请参阅

help(Startup)
了解更多可以在此处自定义的内容,还可以参阅 这个关于自定义 ~/.Rprofile
 的优秀 SO 问题

编辑:至于您刚刚在评论中添加的附加问题,那是不同的。在这种情况下,您可以使用命名空间和

mapply
运算符显式指定
::
。例如,
base::mapply(foo, bar)
会明确地从标准库中选择一个,类似地
help(mapply, package="base")
会请求给定包中给定函数的帮助。


2
投票

如果您希望完全禁用交互式时髦的东西,还可以查看 CRAN 中的 interactivity 包。


0
投票

您还可以在

install.packages()
调用中指定存储库。这是在
R/4.3.0
上测试的,例如

install.packages("withr", repos = "http://cran.us.r-project.org")


0
投票

将其放在

~/.Rprofile
中的新行上:

options(repos=c(CRAN="http://cran.r-project.org"))

重新启动 R 会话,CRAN 镜像弹出窗口将不会再打扰您!

注意:如果 ~/.Rprofile 不存在,您可以简单地创建它。不要忘记 . (这使其成为隐藏文件)。

替代方法(macOS、Linux)

您只需在终端中运行一次(它将把上面提到的行附加到您的 ~/.Rprofile 文件的底部!(这样您就不必跟踪它并手动编辑它)。重新启动您的 R 会话,这样就可以了效果,CRAN镜像弹窗就不会再出现了。

echo 'options(repos=c(CRAN="http://cran.r-project.org"))' >> ~/.Rprofile

注意

你可以设置任何你想要的CRAN镜像,上面使用

"http://cran.r-project.org"
是因为它是常见的。

© www.soinside.com 2019 - 2024. All rights reserved.