1+1[1] 2
1-1[1] 0
2*3[1] 6
8/2[1] 4
2^3[1] 8
2*3-5[1] 1
2*(3-5)[1] -4
log(x = 8, base = 2)[1] 3
log(8,2)[1] 3
log(2,8)[1] 0.3333333
log(base = 2, x = 8)[1] 3
Die folgenden Beispiele führen in Rechenoperationen, Funktionen, Datenstrukturen und erste deskriptive Auswertungen mit R ein.
[1] 2
[1] 0
[1] 6
[1] 4
[1] 8
[1] 1
[1] -4
[1] 3
[1] 3
[1] 0.3333333
[1] 3
Mit ^ wird potenziert. Bei Funktionen können Argumente entweder über ihre Position oder ausdrücklich mit ihrem Namen übergeben werden. Die ersten, zweiten und vierten log()-Aufrufe berechnen daher denselben Logarithmus; log(2,8) vertauscht dagegen die Positionen von Zahl und Basis.
[1] 2.1
c() fasst mehrere Werte zu einem Vektor zusammen. mean() berechnet aus diesem Vektor das arithmetische Mittel.
[1] 1
[1] 5
[1] FALSE
[1] TRUE
[1] 4 6 2 9
[1] 2
[1] 4 2
[1] 4 6 9
[1] 8 12 4 18
[1] 6 8 4 11
[1] 2.000000 2.584963 1.000000 3.169925
[1] 5.25
[1] "sehr gut" "gut" "200€"
[1] "1" "sehr gut"
R zählt die Positionen eines Vektors ab 1. Eckige Klammern wählen Werte aus: v[3] liefert den dritten Wert, und v[c(1,3)] liefert den ersten und dritten Wert. Innerhalb der Klammern kann auch eine Bedingung stehen. v[v >= 4] behält deshalb nur die Werte, die mindestens 4 sind.
Rechenoperationen und viele Funktionen werden auf jeden Eintrag eines Vektors angewendet. Enthält ein Vektor Zahlen und Text, wie v2, werden die Zahlen in Text umgewandelt, damit alle Einträge denselben Datentyp haben.
mtcars[1] 160
[1] 160.0 160.0 108.0 258.0 360.0 225.0 360.0 146.7 140.8 167.6 167.6 275.8
[13] 275.8 275.8 472.0 460.0 440.0 78.7 75.7 71.1 120.1 318.0 304.0 350.0
[25] 400.0 79.0 120.3 95.1 351.0 145.0 301.0 121.0
disp drat
Mazda RX4 160.0 3.90
Mazda RX4 Wag 160.0 3.90
Datsun 710 108.0 3.85
Hornet 4 Drive 258.0 3.08
Hornet Sportabout 360.0 3.15
Valiant 225.0 2.76
Duster 360 360.0 3.21
Merc 240D 146.7 3.69
Merc 230 140.8 3.92
Merc 280 167.6 3.92
Merc 280C 167.6 3.92
Merc 450SE 275.8 3.07
Merc 450SL 275.8 3.07
Merc 450SLC 275.8 3.07
Cadillac Fleetwood 472.0 2.93
Lincoln Continental 460.0 3.00
Chrysler Imperial 440.0 3.23
Fiat 128 78.7 4.08
Honda Civic 75.7 4.93
Toyota Corolla 71.1 4.22
Toyota Corona 120.1 3.70
Dodge Challenger 318.0 2.76
AMC Javelin 304.0 3.15
Camaro Z28 350.0 3.73
Pontiac Firebird 400.0 3.08
Fiat X1-9 79.0 4.08
Porsche 914-2 120.3 4.43
Lotus Europa 95.1 3.77
Ford Pantera L 351.0 4.22
Ferrari Dino 145.0 3.62
Maserati Bora 301.0 3.54
Volvo 142E 121.0 4.11
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.62 16.46 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
[1] 6.1875
[1] 8 8 8 6 6 6 6 8 8 8 8 6 6 6 6 6 6 8 8 8 6 6 6 6 6
[26] 8 10 10 10 10 10 8
Bei einem Data Frame steht in [] vor dem Komma die Auswahl der Zeilen und nach dem Komma die Auswahl der Spalten. Leere Stellen bedeuten „alle“: mtcars[, 3] wählt also alle Zeilen der dritten Spalte. Mit mtcars[c(1,3), ] werden die erste und dritte Zeile ausgewählt.
Das Dollarzeichen greift über den Spaltennamen zu, etwa mtcars$cyl. Die Bedingung mtcars$cyl > 4 erzeugt für jede Zeile einen logischen Wert; eingesetzt in die eckigen Klammern bleiben nur die passenden Autos übrig.
4 6 8
11 7 14
4 6 8
0.34375 0.21875 0.43750
14.5 14.6 15.41 15.5 15.84 16.46 16.7 16.87 16.9 17.02 17.05 17.3 17.4
1 1 1 1 1 1 1 1 1 2 1 1 1
17.42 17.6 17.82 17.98 18 18.3 18.52 18.6 18.61 18.9 19.44 19.47 19.9
1 1 1 1 1 1 1 1 1 2 1 1 1
20 20.01 20.22 22.9
1 1 1 1
table() zählt die absoluten Häufigkeiten. prop.table() teilt diese durch die Gesamtzahl der Beobachtungen und liefert damit relative Häufigkeiten. xlab und ylab beschriften die Achsen; mit main = "" wird kein Diagrammtitel ausgegeben.
Bei hist() legt breaks die Klasseneinteilung fest. Eine einzelne Zahl wie breaks = 3 ist ein Wunsch nach ungefähr drei Klassen; R wählt dafür passende Klassengrenzen. Ein Vektor wie c(14,16,17,18,20,24) gibt die Grenzen dagegen exakt vor. Mit freq = FALSE zeigt die y-Achse Dichten statt absoluter Häufigkeiten. right = FALSE bedeutet, dass Klassen links geschlossen und rechts offen sind: Der Wert 16 gehört zum Beispiel zur Klasse [16, 17).
Die empirische Verteilungsfunktion zeigt für jeden Wert auf der x-Achse den Anteil der Beobachtungen, die höchstens diesen Wert annehmen. Sie steigt daher sprunghaft an und endet bei 1 beziehungsweise 100 %.
[1] 17.84875
[1] 17.84875
Die beiden Berechnungen des arithmetischen Mittels sind gleichwertig: mean() übernimmt die Rechnung, während sum()/length() die Summe aller Werte durch ihre Anzahl teilt. Ein Boxplot fasst die Verteilung kompakt zusammen. Die Box zeigt den Bereich zwischen erstem und drittem Quartil, die Linie darin den Median; Punkte außerhalb der Antennen weisen auf mögliche Ausreißer hin.
Der folgende Block installiert ein zusätzliches Paket und lädt einen darin enthaltenen Datensatz. Er wird auf der Website absichtlich nicht ausgeführt. Für die Arbeit in RStudio können die Befehle einmalig nacheinander ausgeführt werden.