2016-05-25 2 views
0

На типичной установке Mac R dev.new(), вероятно, открывается кварцевое устройство. После запуска options(device = "X11"), dev.new() откроет устройство XQuartz (если установлено) или вернет Error in dev.new() : device 'X11' not found.Можно ли проверить, доступно ли графическое устройство без вызова dev.new()?

Есть ли способ проверить, установлен ли XQuartz и доступен ли он?

Edit:, кажется, работает dev.new() после вызова options(device = "X11") когда XQuartz является не установлен на самом деле висит R сессии. Это не вызывает ошибки. Как ни странно, если XQuartz установлен, а вызов dev.new() занят, он откроет устройство!

ответ

0

Быстрый способ был бы проверить для графических возможностей, чтобы увидеть, если функцию quartz() работы, которая зависит от XQuartz присутствует и показывает в capabilities() как аква, и есть ли вода в capabilities() указана как TRUE.

any(names(capabilities()) == "aqua" & capabilities() == TRUE) 
+1

Вы можете использовать 'isTRUE (noname (возможности (« aqua »)))' для того же. –

+0

Спасибо за помощь. 'capability()', похоже, работает так, как ожидалось, с установленным XQuartz, но висит в R-сеансе, когда XQuartz не установлен, вместо того, чтобы просто возвращать 'FALSE' ... Я был на немного устаревшей версии R, m собирается попробовать и подтвердить поведение в последней версии или R-devel –

+0

Подтверждена проблема в R 3.3.0 и R-исправлена ​​... трудность, похоже, находится в '.Internal (capabilityX11())', который называется by 'capability()' –

Смежные вопросы