2012-06-22 16 views
11

Alcune possibilità sono:In R, qual è il modo canonico per rilevare se il sistema operativo è a 64 bit?

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

C'è qualche motivo per preferire un metodo rispetto ad un altro?

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

+0

Credo che quelli saranno tutti fallire almeno per l'architettura PowerPC e Itanium a 64 bit. 'grep'ing' .Platform $ r_arch' per "64" potrebbe funzionare per la maggior parte delle architetture, ma perché preoccuparsi quando DWin ha fornito la risposta. – jthetzel

+0

Probabilmente fallirebbe anche per le build di Solaris. –

risposta

12

In realtà nessuno di questi metodi sarebbe canonica, che prendo a significare "che cosa sarebbe Brian Ripley dire". Prova questo:

?.Machine 

sizeof.pointer ........ il numero di byte nel tipo C sexp. Saranno 4 a 32 bit costruisce e 8 a 64 bit build di R.

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

Per quanto riguarda le vostre candidature solo uno di loro restituisce true sulla mia macchina:

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