R-Dateien in Abhängigkeit vom Betriebssystem aufrufen

Abhängig vom Betriebssystem (z.B. Windows, Linux, Mac) unterscheidet sich die Struktur der Dateien und Pfade zum Teil erheblich. Während auf einem Windows-Betriebssystem jede Partition der Festplatte mit einem Buchstaben bezeichnet wird (z.B. C:) und Datein standardmäßig in einem Ordner abgespeichert werden, der sich auf dieser Partition befindet (z.B. C:\name\Eigene Dateien\Documents), so hält ein Linux-Betriebssystem als Speicherort für Dateien die sogenannte home-Partition vor (z.B. /home/name/Documents).

Arbeitet man mit R an verschiedenen Rechnern, so bietet es sich an, seine Datein etc. mit Hilfe eines Cloud-Speichers zu synchronisieren. Solche Cloudspeicher (z.B. Dropbox, Google Drive, Copy) werden von verschiedenen Anbietern kostenlos zur Verfügung gestellt.

Sind auf diesen Rechnern unterschiedliche Betriebssysteme installiert (siehe oben), so sollte dies beim Schreiben des R-Codes berücksichtigt werden. Der folgende Code zeigt, wie man zunächst mit der Sys.info()-Funktion den Namen des Betriebssystems überprüft und danach in Abhängigkeit vom vorhandenen Betriebssystem, das Arbeitsverzeichnis festlegt (mit der setwd()-Funktion).

if (Sys.info()['sysname']=="Windows") # Check if name of operting system is 'Windows'
{
  setwd("C:/Programs/Copy/Projects")
} else
{
  setwd("/home/name/Projects")
}

source("myRfile.R")

In einem weiteren Schritt kann dann mit der source()-Funktion ein R-File ausgeführt werden, das sich in diesem Arbeitsverzeichnis befindet.

ggplot-Graphiken mit der source()-Funktion aufrufen

In R gibt es die Möglichkeit, mit der source()-Funktion von einem sogenannten MAKE- oder Masterfile aus auf eine oder mehere Quelldateien zuzugreifen. Dies bietet sich vor allem dann an, wenn der R-Code sehr umfangreich ist. Eine Aufteilung dies Codes in mehrere Source-Files sorgt dabei für eine größere Übersichtlichkeit.

source("C:/A_ggplot.R")

In der source()-Funktion müssen Name und Ort der Quelldatei angegeben werden. Das A_ am Anfang der im Beispielcode verwendeten Datei A_ggplot.R zeigt an, dass es sich bei der Quelldatei um ein Analyse-File handelt. Die Bezeichnung ggplot weißt darauf hin, dass mit dieser Datei eine Graphik mit dem R-Paket ggplot2 erzeugt wird.

library(ggplot2)
data(diamonds)  # 'diamonds' ist ein in R bereitgestellter Datensatz
ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar()

Ruft man die Quelldatei A_ggplot.R mit der source()-Funktion auf, wird jedoch keinerlei Output erzeugt.

source("C:/A_ggplot.R")

Um die gewünschte Grafik zu erzeugen, gibt es zwei Möglichkeiten. Zum einen kann die source()-Funktion um die Angabe print.eval=TRUE ergänzt werden:

source("C:/A_ggplot.R", print.eval = TRUE)

Zum anderen kann die in der Quelldatei erzeugte Grafik als Objekt (hier: chart) gespeichert und danach der print()-Funktion zugewiesen werden:

library(ggplot2)
data(diamonds)  # 'diamonds' ist ein in R bereitgestellter Datensatz
chart <- ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar()
print(chart)

Der Aufruf des Quellfiles erfolgt wie bereits weiter oben angegeben:

source("C:/A_ggplot.R")

Und der gewünschte Output wird erzeugt: