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

Есть ли простой способ превратить все элементы GUI в R и запустить его исключительно из командной строки на OSX?

Я пытаюсь реплицировать поведение удаленного терминала linux на моей машине OSX. Таким образом, plot() должен просто сохранить файл, и такие вещи, как выбор зеркала CRAN, должны быть текстом, а не интерфейсом Tk. Мне трудно найти, где установить это поведение.

Ответ 1

У меня был этот точный вопрос и я хотел сделать это, не меняя свой существующий код. Обычно я запускаю графическую поддержку, но иногда я запускаю script на сервере для большего набора данных, а затем просто хочу, чтобы графики были выведены где-то автоматически.

В ответ Дирка Ian Fellows дает простое решение. В командной строке в типе R:

options(device=pdf)

И тогда любые графики будут записаны непосредственно в файл Rplots.pdf.

Если вы хотите, чтобы файлы вообще не отображались, используйте

options(device=NULL)

Ответ 2

Для графиков вы можете просто направлять вывод в файл с помощью команды pdf() (или png(), jpeg()...).

Ответ 3

У меня нет окна OS X, но вы пытались отключить переменную среды X11 DISPLAY:

DISPLAY = "" R --vanilla

Когда я делаю это в Linux и запрашиваю R для capabilties(), x11 появляется как ЛОЖЬ по желанию.

Ответ 4

Я не запускаю OSX, но вы могли бы попытаться запустить R из приложения Terminal, а не с запуска Mac OSX, и посмотреть, работает ли это по мере необходимости.

Как пишет Матти, вы можете отправлять выходные данные в файлы, используя следующие команды; но я не знаю, действительно ли это суть вашего вопроса.

png("pngfile.png")
plot(foo)
title(main="bar")
dev.off()

Итак, вместо кварцевого графического объекта ваш вывод идет в файл.

Аналогично, вы можете выводить то, что обычно отображается в терминале для файла.

sink("foo.file")