2016-05-25 5 views
0

Auf einer typischen Mac-Installation von R dev.new() öffnet wahrscheinlich ein Quarz-Gerät. Nach der Ausführung von options(device = "X11") würde dev.new() ein XQuartz-Gerät öffnen (falls installiert) oder andernfalls Error in dev.new() : device 'X11' not found zurückgeben.Kann überprüft werden, ob ein Grafikgerät verfügbar ist, ohne dev.new() aufzurufen?

Gibt es eine Möglichkeit zu überprüfen, ob XQuartz installiert und verfügbar ist?

Edit: es scheint, dass dev.new() läuft options(device = "X11") nach dem Aufruf, wenn XQuartz ist nicht installiert tatsächlich die R-Sitzung hängt. Es wird kein Fehler ausgegeben. Seltsamerweise, wenn XQuartz installiert ist, während der dev.new() Anruf beschäftigt ist, wird es das Gerät öffnen!

Antwort

0

Eine schnelle Möglichkeit für die Grafikfunktionen zu prüfen wäre, wenn die Funktion quartz() Werke zu sehen, die auf XQuartz vorhanden ist und zeigt sich in capabilities() als aqua abhängt und ob aqua in capabilities() als WAHR aufgeführt.

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

Sie könnten 'ISTTRUE (Unbenannt (Fähigkeiten (" Aqua "))) für die gleiche Sache. –

+0

Danke für die Hilfe. 'functions()' scheint bei XQuartz wie erwartet zu funktionieren, hängt aber die R-Sitzung ab, wenn XQuartz nicht installiert ist, anstatt nur 'FALSE' zurückzugeben ... Ich war auf einer etwas veralteten R-Version, also ' Ich werde versuchen, das Verhalten in der neuesten Version oder R-devel –

+0

zu bestätigen. Bestätigt das Problem in R 3.3.0 und R-gepatcht ... die Schwierigkeit scheint in ".Internal (capabilitiesX11())" zu sein, die aufgerufen wird von 'capabilities()' –

Verwandte Themen