2012-06-22 3 views
11

Einige Möglichkeiten sind:In R, was ist die kanonische Art zu erkennen, ob das Betriebssystem 64-Bit ist?

Sys.info()["machine"] == "x86-64" 
.Platform$r_arch == "x64" 
version$arch == "x86_64" 

Gibt es einen Grund eine Methode gegenüber anderen zu bevorzugen?

Verwandte: detecting operating system in R (e.g. for adaptive .Rprofile files)

+0

ich alle glauben Fail für mindestens PowerPC und Itanium 64-Bit-Architektur. 'grep'ing' .Plattform $ r_arch' für "64" könnte für die meisten Architekturen funktionieren, aber warum sollte man sich kümmern, wenn DWin's die Antwort lieferte. – jthetzel

+0

Würde wahrscheinlich auch für Solaris-Builds fehlschlagen. –

Antwort

12

Eigentlich keine dieser Methoden würde kanonische sein, was ich meine, um „Was würde Brian Ripley sagen“. Versuchen Sie dies:

?.Machine 

sizeof.pointer ........ die Anzahl der Bytes in einem C SEXP-Typ. Wird 4 sein auf 32-Bit-Builds und 8 auf 64-Bit-Versionen von R.

64bit <- .Machine$sizeof.pointer == 8 
64bit 
#[1] TRUE 

Wie für Ihre Nominierungen nur einer von ihnen auf meiner Maschine TRUE zurück:

> Sys.info()["machine"] == "x86-64" 
machine 
    FALSE 
> .Platform$r_arch == "x64" 
[1] FALSE 
> version$arch == "x86_64" 
[1] TRUE 
Verwandte Themen