2010-01-19 5 views
26

Gibt es eine einfache Möglichkeit, programmgesteuert festzustellen, ob ein R-Skript in Windows vs. Linux ausgeführt wird?R: Ermitteln, ob ein Skript in Windows oder Linux ausgeführt wird

+0

ja! Ich kenne dieses – Dan

+0

Ich bin ein wenig zu spät zu dieser Party, aber betrachten Sie diese Google Code Search: http://www.google.com/codesearch?as_q=linux+windows&btnG=Search+Code&hl=de&as_lang=r - dh angeben ' as_lang = r ', um R-basierte Lösungen nur dann zu erhalten, wenn nach den Strings "linux" und "windows" gesucht wird. Und es ist genau dort .... –

+0

fantastisch! Ich wusste nichts über die GOOG-Codesuche. Ich kämpfte und kämpfte darum, nach diesem zu suchen, bekam aber immer unverwandte Ergebnisse. –

Antwort

28
if(.Platform$OS.type == "unix") { 
} else { 

} 
+0

ich hätte diese Zeit nicht mit dem ersten Kommentar verschwenden sollen. Wieder geschlagen zum Schlag. – Dan

+1

Wenn es ein nützlicher Kommentar gewesen wäre, würde ich mitfühlen ... Aber das war wirklich verschwendete Zeit! :) –

+0

Danke! Ich konnte mich nicht daran erinnern, mein Leben zu retten. –

6
.Platform$OS.type 

kehrt

[1] "unix" 

oder sonst etwas.

+0

Siehe auch R.version() für andere Dinge vom Typ OS. – Spacedman

+0

hmm .. R.version() funktioniert nicht ... vielleicht Sys.info()? –

+0

ahh .. Großschreibung. Es ist R.Version() –

10
Sys.info()["sysname"] 
2

Ich betreibe den gleichen Code aus einem der drei Linux oder Windows-Rechnern. Ich verwende den folgenden Arbeitsverzeichnisse einzurichten:

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

auf meinem Debian Linux-Server und mein Ubuntu Laptop:

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

Auf meinem Windows 10 Laptop, in RStudio:

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

Fühlen Sie sich frei, diese Liste zu bearbeiten und hinzuzufügen.