R-Kurs · Kapitel 6 · Matrizen und Tabellen in R
Matrizen & Tabellen in R
Matrizen anlegen
matrix() füllt eine Matrix — mit byrow = TRUE zeilenweise. dim, t()
(transponieren), rowSums/colSums helfen beim Rechnen.
R
m <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, byrow = TRUE)
m
dim(m) # Zeilen, Spalten
rowSums(m) # Zeilensummen
colSums(m) # Spaltensummen Ausgabe
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[1] 2 3
[1] 6 15
[1] 5 7 9 Zugriff auf Elemente
m[i, j] liest Zeile i, Spalte j. Eine ganze Zeile/Spalte erhält man, indem
man den anderen Index leer lässt:
R
m[2, 3] # 2. Zeile, 3. Spalte
m[1, ] # ganze 1. Zeile
m[, 2] # ganze 2. Spalte Ausgabe
[1] 6
[1] 1 2 3
[1] 2 5 Lege die Matrix an, lies das Element in der 2. Zeile/1. Spalte und bestimme die Spaltensummen.
Lösung zeigen
R
A <- matrix(c(10, 20, 30, 40), nrow = 2, byrow = TRUE)
A[2, 1]
colSums(A) Ausgabe
[1] 30
[1] 40 60 Kontingenztafeln
Aus zwei kategorialen Merkmalen erzeugt table(a, b) die Kontingenztafel;
addmargins ergänzt Randsummen, prop.table(..., margin = 1) die bedingten
relativen Häufigkeiten je Zeile.
R
tafel <- matrix(c(30, 70, 570, 330), nrow = 2, byrow = TRUE)
addmargins(tafel) # mit Randsummen
prop.table(tafel, margin = 1) # bedingt je Zeile
chisq.test(tafel, correct = FALSE)$statistic # Chi-Quadrat Ausgabe
[,1] [,2] Sum
[1,] 30 70 100
[2,] 570 330 900
Sum 600 400 1000
[,1] [,2]
[1,] 0.300 0.700
[2,] 0.633 0.367
X-squared
41.66667 Erzeuge aus x <- c("a","b","a","a","b") und y <- c("j","j","n","j","n") eine
Kontingenztafel mit table().
Lösung zeigen
R
x <- c("a","b","a","a","b")
y <- c("j","j","n","j","n")
table(x, y) Ausgabe
y
x j n
a 2 1
b 1 1 Abruf-Quiz
Frage 1 / 2Wie liest m[2, 3] eine Matrix?