R Anleitungen

R: Daten in die Zwischenablage kopieren

Es gibt Situationen, wo wie schnell und einfach Daten zwischen zwei Programmen austauschen wollen, beispielsweise wenn wir Daten von R in Excel benötigen. Normalerweise würden wir hierfür oft die Daten beispielsweise als CSV-Datei oder auch direkt als Excel-Datei speichern, aber das kann umständlich werden, gerade wenn es vielleicht nur wenige Daten und oder wir nicht wirklich eine Zwischendatei benötigen. Hier wäre es wesentlich einfacher, die Daten in die Zwischenablage zu kopieren und dann direkt in Excel einzufügen. Wie das geht, zeigen wir in diesem Artikel.

writeClipboard()

R hat direkten Zugriff auf die Zwischenablage von Windows und macOS und zwar über die Funktion writeClipboard(). Mit ihr können wir beliebigen Text kopieren.

R Code
daten <- "StatistikGuru"
writeClipboard(daten)

Mit dem Befehl oben haben wir „StatistikGuru“ in die Zwischenablage kopiert. Die Funktion writeClipboard() funktioniert allerdings ausschließlich mit Text. Wenn wir versuchen würden eine Zahl zu kopieren, würden wir folgende Fehlermeldung erhalten:

R Code
daten <- 3.14159
writeClipboard(daten)

# Fehler in writeClipboard(daten) : 
#   argument must be a character vector or a raw vector
writeClipboard(as.character(daten)) # Funktioniert

Wenn wir eine Zahl in die Zwischenablage kopieren wollten, müssten wir sie zuerst mit der Funktion as.character() in eine Zeichenketten umwandeln und dann kopieren. Dies trifft nicht nur auf Zahlen, sondern auch auf andere Datentypen zu (Variablen in R können unterschiedliche Datentypen haben).

Datenrahmen und Matrizen in die Zwischenablage kopieren

Interessanter wird es allerdings, wenn wir mehr Informationen kopieren wollen, beispielsweise einen ganzen Datenrahmen nach Excel. Wenn wir beispielsweise der Variable Datenrahmen eine Zeitreihe aus CO2-Daten zugewiesen hätten, könnten wir sie wie folgt nach Excel kopieren.

R Code
write.table(Datenrahmen, "clipboard", sep="\t", dec=",", row.names=FALSE)
Der Befehl dec="," sorgt dafür, dass eine Komma als Dezimaltrennzeichen verwendet wird. Sollte eine andere Sprache in Excel oder im Betriebssystem eingestellt sein, muss diese Angabe eventuell entfernt oder angepasst werden, damit die Daten auch als Zahlen erkannt werden.

Wenn wir nur die reinen Daten haben möchten – ohne die Spaltenbeschriftungen –, können wir noch zusätzlich col.names=FALSE hinzufügen:

R Code
write.table(Datenrahmen, "clipboard", sep="\t", dec=",", row.names=FALSE, col.names=FALSE)

Dies funktioniert für alle Objekte, die durch write.table() verarbeitet werden können, wie Datenrahmen (data.frame), Listen, Vektoren, etc.

Bei sehr großen Tabellen kann es sein, dass wir eine Fehlermeldung bekommen und R die Daten nicht in die Zwischenablage kopiert. Hier kann es helfen, wenn wir den Parameter "clipboard" durch "clipboard-16384" ersetzen (leider funktioniert dies nicht auf allen Betriebssystemen).