R: определить, запущен ли скрипт в Windows или Linux

Есть ли простой способ программно определить, выполняется ли сценарий R в Windows или Linux?


person JD Long    schedule 19.01.2010    source источник
comment
Я немного опоздал на эту вечеринку, но рассмотрите этот поиск кода Google: google.com/ -- т. е. укажите 'as_lang=r', чтобы получать решения на основе R только при поиске строк 'linux' и 'windows'. И тут же....   -  person Dirk Eddelbuettel    schedule 19.01.2010
comment
фантастический! Я не знал о поиске кода GOOG. Я изо всех сил пытался найти это, но продолжал получать несвязанные результаты.   -  person JD Long    schedule 20.01.2010


Ответы (3)


.Platform$OS.type

возвращается

[1] "unix"

или что-то другое.

person Spacedman    schedule 19.01.2010
comment
См. также R.version() для других вещей типа ОС. - person Spacedman; 19.01.2010
comment
ааа.. с большой буквы. Это R. Версия () - person JD Long; 19.01.2010

Я запускаю один и тот же код с любого из трех компьютеров с Linux или Windows. Я использую следующее для настройки рабочих каталогов:

if(R.Version()$os == "linux-gnu"){
  dir.pre <- "/home"
} else {
  dir.pre <- "C:/Users"
}

На моем сервере Debian Linux и моем ноутбуке с Ubuntu:

> .Platform$OS.type
[1] "unix"
> R.Version()$os
[1] "linux-gnu"

На моем ноутбуке с Windows 10 в RStudio:

> .Platform$OS.type
[1] "windows"
> R.Version()$os
[1] "mingw32"

Не стесняйтесь редактировать и добавлять в этот список.

person mightypile    schedule 14.01.2016

person    schedule
comment
Я не должен был тратить это время на первый комментарий. Избитый до удара снова. - person Dan; 19.01.2010
comment
Если бы это был полезный комментарий, я бы посочувствовал... Но это было действительно зря потраченное время! :) - person Pekka; 19.01.2010
comment
Спасибо! Я не мог вспомнить это, чтобы спасти свою жизнь. - person JD Long; 19.01.2010
comment
на самом деле это также возвращает «unix» на OSX. Я думаю, вам нужно также проверить Sys.info()["sysname"]=='Darwin', чтобы отличить. - person conjugateprior; 28.01.2013