Einführung in R

Quellcode

Inhalt

R als Taschenrechner

In diesem Kapitel geben wir Ihnen eine kurze Einführung zur Grundlegenden Verwendung von R. Sie können ergänzend die Videotutorials zur Datenhandhabung nutzen.

Quellcode als Script / Daten

1) R als Taschenrechner

Script

# Einfache Rechenaufgaben mit arithmetischen 
# Operatoren
1+1

Console

[1] 2

Script

# ^ spezifiziert den Exponenten
3^2

Console

[1] 9

Script

# logische Operatoren: == untersucht, 
# ob es sich um identische Werte handelt
1==1

Console

[1] TRUE

Script

"String"=="string"; "A"!="B"; 1<2

Console

[1] FALSE

[1] TRUE
[1] TRUE

2) Erstellung und Berechnung von Variablen

Script

# Definition der Variablen im Workspace

spiele <- c(30, 18, 28, 33, 30)
tore <- c(18, 12, 11, 20, 16)

# Wir verwenden spieler_name, damit es nicht zur 
# Verwechslung mit der bereits
# vorhandenen Funktion names() kommt. Buchstaben und # Worte werden durch ""
# gekennzeichnet.

spieler_name <- c("Mario Mandzukic", "Klaas-Jan Huntelaar", "Arjen Robben", "Robert Lewandowski", "Marco Reus")

# Beispiele für die Anwendung von Operatoren auf 
# Variablen.
# Durchschnittliche Anzahl der Spiele pro Monat

spiele/12

Console

[1] 2.500000 1.500000 2.333333 2.750000 2.500000

Script

# Welcher Wert der Variable Spiele ist identisch mit 
# 18?
spiele==18

Console

[1] FALSE TRUE FALSE FALSE FALSE

Script

# Anteil der Tore am Anteil aller Tore der fünf Stürmer
tore/sum(tore)

Console

[1] 0.2337662 0.1558442 0.1428571 0.2597403 0.2077922

Objektklassen

Script

# Das character-Objekt wird in ein factor-Objekt 
# umgewandelt.
class(as.factor(spieler_name))

Console

[1] "factor"

Script

# Generierung eines data.frame-Objekts
fussball <- data.frame(spieler_name, tore, spiele)
# Entfernen von Objekten
rm(spieler_name, tore, spiele)

3) Umgang mit fehlenden Werten

Script

spiele <- c(30, 18, 28, 33, 30, NA)
tore <- c(18, 12, 11, 20, 16, 13)
spieler_name <- c("Mario Mandzukic", "Klaas-Jan Huntelaar", "Arjen Robben",
"Robert Lewandowski", "Marco Reus", "Thomas Mueller")
# Mittelwert mit NA Ausgabe
mean(spiele)

Console

[1] NA

Script

# Mittelwert mit NA Ausschluss
mean(spiele, na.rm=T)

Console

[1] 27.8

Script

# Für welchen Wert von spiele gilt, dass er NA ist
is.na(spiele)

Console

[1] FALSE FALSE FALSE FALSE FALSE TRUE

Script

# An welcher Position befinden sich die NA Werte
which(is.na(spiele))

Console

[1] 6

4) Indizierung

Script

# Wert der 3. Stelle der Variable spieler_name
spieler_name[3]
# Welcher Wert / welche Werte der Variable spiele 
# haben den Wert 30?
which(spiele==30)
# Welcher Wert / welche Werte der Variable spiele 
# haben den Wert 30?
spieler_name[which(spiele==30)]

Console

[1] "Arjen Robben"
[1] 1 5
[1] "Mario Mandzukic" "Marco Reus"

Script

# Zuweisung von Werten
# Thomas Müller hat 31 Spiele bestritten. Die Variable spiele enthält für ihn aber
# den Wert NA. Wir definieren den entsprechenden Wert an entsprechender Stelle.
spiele[which(spieler_name== "Thomas Mueller")] <- 31
# oder kürzer
spiele[6] <- 31

5) Funktionen

# Berechnung des Mittelwertes mit der Funktion mean()
mean( 
c(2, 3, 5, 6, 9) 
) 

Console

[1] 5

Script

# Die Verwendung von attach()
attach(bsp01) 
mean(IQ) 

Console

[1] 99.02

Script

# Zurücksetzen des Suchpfades
detach(bsp01)
# Ohne Spezifizierung von bsp01 kann der IQ nicht berechnet werden, 
# da das Objekt IQ nicht im Workspace vorhanden ist. 
mean(IQ)

Console

Error in mean(IQ) : object 'IQ' not found

6) R-Objekte erzeugen

Script

# Hier wird ein R-Objekte erzeugt, 
# welches den Mittelwert 
# der Variable IQ enthält
attach(bsp01) 
mittelwert_IQ <- mean(IQ) 
# Schlechte Namen
mean <- mean(IQ) 
varianz_IQ <- mean(IQ) 
# Weitere Beispiele
stichprobenumfang_IQ <- length(IQ) 
varianz_IQ <- var(IQ) 
# Ein neues Objekt aus anderen Objekten
mittelwert2_IQ <- sum(IQ)/stichprobenumfang_IQ
# Das Ausführen des Objekts gibt dessen Inhalt an.
mittelwert2_IQ

Console

[1] 99.02

7) Funktionsargumente

Script

# Berechnung des Mittelwerts des IQ für Männer
mean( 
 subset( 
 x = bsp01$IQ, 
 subset = bsp01$sex=="male" 
 ) 
)

Console

[1] 101.7619

8) Pakete verwenden

Script

# Laden der Paketbibliothek
library(aplpack)
# Erstellung des IQ in den jeweiligen Gruppen mit subset()
IQ_maenner <- subset(bsp01$IQ, bsp01$sex=="male") 
IQ_frauen <- subset(bsp01$IQ, bsp01$sex=="female") 
# Erstellung des zweiseitigen Stamm-Blatt-Diagramms
stem.leaf.backback(x=IQ_maenner, y=IQ_frauen,m=1)

Console

1 | 2: represents 12, leaf unit: 1 
          IQ_maenner     IQ_frauen 
____________________________________________________ 
1                  8|  5 | 
                    |  6 |7                        1 
4                996|  7 |33556899                 9 
8               6632|  8 |123344556678            21 
21     9886555432210|  9 |0445788                 (7) 
(9)        665544431| 10 |0000111112234555        30 
12            888311| 11 |01346666689             14 
6                431| 12 |179                      3 
3                 83| 13 | 
                    | 14 | 
____________________________________________________ 
HI: 151 
n:                42      58 
____________________________________________________