Отключить графический интерфейс, графические устройства в 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")