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.

Advertisements

About norbert

I am post doc at the Department of Medical Psychology and Sociology, Leipzig University (GER), with degrees in sociology (MA) and public health (MPH).
This entry was posted in Data Management. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s