Отключить / подавить всплывающее окно tcltk для выбора зеркала CRAN в R

Мой вопрос похож на вопрос, ранее опубликованный, но здесь никогда не отвечали:

Отключить графический интерфейс, графические устройства в R

Мне не нравятся всплывающие окна R tcltk для выбора зеркала CRAN. Они также всплывают, чтобы выбрать пакет при поиске справки по функции в двух пакетах.

Есть ли способ отключить эти окна без полного отключения X11? Я все еще хочу, чтобы команды plot() работали как обычно, но отключаю маленькие меню выбора, которые загружаются через удаленное соединение вечно.

Например, если вы используете ssh, но не используете -X, то зеркальный выбор - это просто текст в R, вы вводите число. Это быстро. Это то, что я хочу, но поддержание X11 для участков b.

Кто-нибудь знает, как поддерживать графические окна, но отключить "выбор" окон tcltk?

4 ответа

Решение

Дирк предлагает способы избежать меню в целом, но чтобы ответить на ваш вопрос в том виде, в котором он задан, я думаю, вы хотите

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"))

Просто установите зеркало в загрузочных файлах. У меня есть это в моем ~/.Rprofile и я никогда не вижу такой подсказки:

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

Увидеть help(Startup) для большего количества вещей вы можете настроить здесь, а также увидеть этот отличный вопрос о настройке ~/.Rprofile,

Изменить: Что касается вашего дополнительного вопроса, только что добавленного в комментариях, это другое. В этом случае вы можете указать mapply явно с помощью пространства имен и :: оператор. Например, base::mapply(foo, bar) однозначно выбрал бы один из стандартной библиотеки, и аналогично help(mapply, package="base") просит помощи для данной функции из данного пакета.

Также обратите внимание на пакет интерактивности в CRAN, если вы хотите полностью отключить интерактивные элементы в стиле фанк.

Вы также можете указать репо вinstall.packages()вызов. Это было проверено наR/4.3.0, например

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

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