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:

Author: norbert

Biometrician at Clinical Trial Centre, Leipzig University (GER), with degrees in sociology (MA) and public health (MPH).

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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: