Wie in jeder anderen Pro­gram­mier­spra­che exis­tie­ren auch in der R-Pro­gram­mie­rung ver­schie­de­ne Da­ten­ty­pen, die Pro­gram­mie­ren­den dabei helfen, ihre Daten zu struk­tu­rie­ren. Neben den Basic Data Types gibt es in R auch kom­ple­xe­re Da­ten­ty­pen.

Wofür werden Da­ten­ty­pen in R benutzt?

Beim Pro­gram­mie­ren geht es oftmals um die Ver­ar­bei­tung von Daten. Damit diese Daten in sinn­vol­ler Weise im Speicher abgelegt werden können, haben Ent­wick­le­rin­nen und Ent­wick­ler in den al­ler­meis­ten Sprachen die Wahl zwischen ver­schie­de­nen Da­ten­ty­pen. Beispiele für Da­ten­ty­pen sind Zahlen oder Zei­chen­ket­ten.

Auf ver­schie­de­nen Da­ten­ty­pen sind in der Regel un­ter­schied­li­che R-Ope­ra­to­ren definiert. Daher helfen Da­ten­ty­pen den Pro­gram­mie­ren­den auch dabei, ihre Daten in an­ge­mes­se­ner Form zu ver­ar­bei­ten und somit die Effizienz von Pro­gram­men zu steigern.

Die ver­schie­de­nen Da­ten­ty­pen in R

In R gibt es eine Reihe ver­schie­de­ner Da­ten­ty­pen. Einige R-Da­ten­ty­pen dürften Ihnen, sofern Sie nicht gerade erst das Pro­gram­mie­ren lernen, aus anderen Pro­gram­mier­spra­chen bekannt vorkommen. Für einen Check des Data Types in R gibt es das R-Command class(), das eine beliebige Variable als Über­ga­be­pa­ra­me­ter ent­ge­gen­nimmt und den Datentyp dieser Variable zu­rück­lie­fert.

Nu­me­ri­sche Da­ten­ty­pen

Nu­me­ri­sche Da­ten­ty­pen gehören zu den Basic Data Types in R und werden genutzt, um Zah­len­wer­te ab­zu­bil­den. Innerhalb der nu­me­ri­schen Da­ten­ty­pen wird zwischen numeric für reelle Zahlen, integer für Ganz­zah­len und complex für komplexe Zahlen mit ima­gi­nä­rem Anteil un­ter­schie­den.

x <- 3.14
y <- 42
z <- 3 + 2i
print(class(x))
print(class(y))
print(class(z))
R

Die Ausgabe dieses Codes sieht wie folgt aus:

"numeric"
"numeric"
"complex"

An dieser Stelle wundern Sie sich viel­leicht, wieso zwei Mal der Datentyp numeric aus­ge­ge­ben wurde, obwohl es sich bei der Variable y um einen Integer bzw. eine Ganzzahl handelt. Das ist einfach erklärt: Integer sind in R immer gleich­zei­tig numeric. Um dem In­ter­pre­ter mit­zu­tei­len, dass es sich tat­säch­lich um einen Integer handelt, müssen Sie Ihren Ganz­zah­len das SuffixL anhängen:

y <- 42L
print(class (y))
R

Nun liefert der obige Funk­ti­ons­auf­ruf das erwartete Ergebnis:

"integer"

Zei­chen­ket­ten

Um Text bzw. Zeichen dar­zu­stel­len, können Sie auf einen Datentyp namens character zu­rück­grei­fen. Daten dieses Datentyps, die in R Strings genannt werden, können Sie in R durch einfache oder doppelte An­füh­rungs­zei­chen kenn­zeich­nen:

x <- "Hallo Welt!"
y <- 'Hello world!'
print(class(x))
print(class(y))
R

Auch hier kann die class()-Funktion genutzt werden, um sich den Datentyp Ihrer Variablen anzeigen zu lassen:

"character"
"character"

Logische Da­ten­ty­pen

Variablen des logischen Datentyps, der in R unter der Be­zeich­nung logical bekannt ist, werden vom In­ter­pre­ter zu TRUE oder FALSE aus­ge­wer­tet. Auf diese Weise können Be­din­gun­gen oder logische Ausdrücke for­ma­li­siert werden. Dies ist oft nötig, um den Kon­troll­fluss des Programms zu steuern.

x <- TRUE
y <- FALSE
print(class(x))
print(class(y))
R

Wenn Sie den Datentyp beider Variablen be­trach­ten, sehen Sie, dass ihnen der R Data Type logical zu­ge­wie­sen wurde:

"logical"
"logical"

Rohdaten

In R gibt es einen eigenen Datentyp, um sich Ihre Variablen als Folge von Bytes anzusehen. Dieser R Data Type trägt den Namen raw. Um Ihre Daten in Rohdaten zu kon­ver­tie­ren, können Sie die Funktion charToRaw() nutzen. Für den um­ge­kehr­ten An­wen­dungs­fall existiert die Funktion rawToChar().

Folgender Code zeigt, wie ein String in eine Bytefolge kon­ver­tiert wird, die den Datentyp raw hat:

x <- "Hallo Welt!"
y <- charToRaw(x)
print(y)
print(class(y))
R

Der obige Code gibt zunächst die Bytefolge in He­xa­de­zi­mal­zah­len auf dem Bild­schirm aus. Im Anschluss sorgt der Aufruf von class() dafür, dass der Datentyp der Variable y angezeigt wird:

48 61 6c 6c 6f 20 57 65 6c 74 21
"raw"
Hinweis

In R können Sie Daten auch in einen anderen Datentyp kon­ver­tie­ren. Ein solcher Change von Data Types in R ist häufig sogar aus­ge­spro­chen einfach: Wenn Sie einen String haben, der aus einer Zahl besteht (z. B. “42”), können Sie durch einfache Addition von 0 dafür sorgen, dass der String in den Datentyp numeric um­ge­wan­delt wird.

Da­ten­struk­tu­ren in R

Neben den R-Basic Data Types gibt es eine ganze Reihe ver­schie­de­ner Da­ten­struk­tu­ren, die Pro­gram­mie­ren­den dabei helfen, Daten besser zu struk­tu­rie­ren. Diese Da­ten­struk­tu­ren sind komplexer als die einfachen Da­ten­ty­pen und, wie bei­spiels­wei­se R Data Frames, anders als Data Types oft auch mehr­di­men­sio­nal.

Tipp

Sie haben Lust bekommen auf die Pro­gram­mie­rung in R? Bringen Sie Ihr nächstes R-Projekt mit in­di­vi­du­ell an­pass­ba­rem Webspace-Hosting online!

Zum Hauptmenü