В R, каков канонический способ определить, является ли ОС 64-разрядной?

Некоторые возможности включают в себя:

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

Есть ли причина предпочесть один метод над другим?

Связано: обнаружение операционной системы в R (например, для адаптивных файлов .Rprofile)

Ответ 1

На самом деле ни один из этих методов не был бы каноническим, что я подразумеваю, "что сказал бы Брайан Рипли". Попробуйте следующее:

?.Machine

sizeof.pointer........ количество байтов в типе C SEXP. Будет 4 на 32-битных сборках и 8 на 64-битных строках R.

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

Что касается ваших номинаций, то только один из них возвращает TRUE на моей машине:

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