0Pricing
R Academy · Lektion

Matrizen transponieren und umformen

Verwenden Sie t(), dim() und reshape-Operationen auf Matrizen.

Matrizen transponieren und umformen ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Eine Matrix mit t() transponieren

t(m) transponiert eine Matrix – dabei werden Zeilen und Spalten vertauscht, sodass Zeile i im Ergebnis zu Spalte i wird. Die Dimensionen werden vertauscht: Eine 3x4-Matrix wird durch die Transposition zu einer 4x3-Matrix.

m <- matrix(1:6, nrow = 2, ncol = 3)
cat('Original (2x3):
'); print(m)
cat('Transposed (3x2):
'); print(t(m))
cat('Original dim:', dim(m), '-> Transposed dim:', dim(t(m)), '
')

Transposition mit benannten Dimensionen

Wenn eine Matrix Zeilen- und Spaltennamen hat, vertauscht t() die Namen korrekt: Zeilennamen werden zu Spaltennamen und umgekehrt. So bleiben Ihre Daten auch nach der Transposition beschriftet.

scores <- matrix(
  c(88,92,75, 79,85,90),
  nrow = 2, byrow = TRUE,
  dimnames = list(c('Alice', 'Bob'), c('Math', 'Sci', 'Eng'))
)
cat('Original (students x subjects):
'); print(scores)
cat('Transposed (subjects x students):
'); print(t(scores))

Umformen mit dim(m) <- c(r, c)

Sie können eine Matrix umformen, indem Sie ihr dim-Attribut neu zuweisen. Die Gesamtzahl der Elemente muss gleich bleiben. Beim Umformen werden die Werte spaltenweise gelesen und eingefügt, genau wie bei matrix().

m <- matrix(1:12, nrow = 3, ncol = 4)
cat('Original (3x4):
'); print(m)

# Reshape to 4x3
dim(m) <- c(4, 3)
cat('Reshaped to (4x3):
'); print(m)

# Reshape to 6x2
dim(m) <- c(6, 2)
cat('Reshaped to (6x2):
'); print(m)

Eine Matrix mit as.vector() in einen Vektor umwandeln

as.vector(m) wandelt eine Matrix in einen eindimensionalen Vektor um, indem die Werte spaltenweise gelesen werden. Dadurch werden alle Dimensionsattribute des Objekts entfernt.

m <- matrix(c(10,20,30,40,50,60), nrow = 2, ncol = 3)
cat('Matrix:
'); print(m)

v <- as.vector(m)
cat('As vector (col-by-col):', v, '
')
cat('Is vector:', is.vector(v), '
')
cat('Is matrix:', is.matrix(v), '
')

Einen Vektor mit as.matrix() in eine Matrix umwandeln

as.matrix(v) wandelt einen Vektor in eine Matrix mit einer einzigen Spalte um. Dies ist die einfachste Konvertierung. Anschließend können Sie mit dim() die gewünschten Dimensionen festlegen.

v <- c(5, 10, 15, 20, 25, 30)
cat('Vector:', v, '
')

# as.matrix makes a 6x1 matrix
m_single_col <- as.matrix(v)
cat('Single-column matrix:
'); print(m_single_col)
cat('Dimensions:', dim(m_single_col), '
')

rbind() – Zeilen stapeln

rbind() kombiniert Matrizen oder Vektoren, indem es Zeilen stapelt. Alle Eingaben müssen dieselbe Anzahl an Spalten haben. Die resultierende Matrix hat die Gesamtzahl der Zeilen aller Eingaben.

first_half <- matrix(1:6, nrow = 2, ncol = 3)
second_half <- matrix(7:12, nrow = 2, ncol = 3)

combined <- rbind(first_half, second_half)
cat('rbind result (4x3):
'); print(combined)
cat('Dimensions:', dim(combined), '
')

cbind() – Spalten zusammenfügen

cbind() kombiniert Matrizen oder Vektoren, indem es Spalten nebeneinander zusammenfügt. Alle Eingaben müssen dieselbe Anzahl an Zeilen haben. Das Ergebnis hat die Gesamtzahl der Spalten aller Eingaben.

ids <- matrix(101:104, nrow = 4, ncol = 1)
scores_mat <- matrix(c(88,79,95,72, 92,85,78,90), nrow = 4)

full_data <- cbind(ids, scores_mat)
colnames(full_data) <- c('ID', 'Test1', 'Test2')
cat('cbind result:
'); print(full_data)

rbind() und cbind() mit benannten Zeilen/Spalten

Wenn Sie benannte Matrizen oder benannte Vektoren mit rbind() oder cbind() kombinieren, bleiben die Dimensionsnamen erhalten (bei Vektoren werden die Vektornamen zu Zeilen- oder Spaltennamen).

# Add a new student row with rbind
existing <- matrix(c(88,92,75, 79,85,90), nrow = 2, byrow = TRUE,
                   dimnames = list(c('Alice','Bob'), c('Math','Sci','Eng')))
new_student <- c(Math=95, Sci=78, Eng=82)
updated <- rbind(existing, Carol = new_student)
cat('Updated roster:
'); print(updated)

Identität der doppelten Transposition

Wenn Sie t() zweimal anwenden, erhalten Sie die ursprüngliche Matrix zurück. Dies ist eine nützliche Plausibilitätsprüfung und zeigt, dass die Transposition ihre eigene Umkehrung ist: t(t(m)) == m.

m <- matrix(c(1,2,3,4,5,6), nrow = 2)
cat('Original:
'); print(m)
cat('t(m):
');    print(t(m))
cat('t(t(m)):
'); print(t(t(m)))
cat('t(t(m)) == m:', all(t(t(m)) == m), '
')

Praxis: Pivot-ähnliches Umformen

Eine häufige Aufgabe beim Umformen ist die Konvertierung zwischen breiten und langen Formaten. Hier simulieren wir eine manuelle Pivot-Umwandlung von breit zu lang mithilfe von Matrixoperationen – durch Transponieren, Abflachen und Wiederherstellen der Struktur.

# Wide: 3 students x 4 months scores
wide <- matrix(c(85,88,90,92, 78,80,79,83, 91,94,88,95),
               nrow = 3, byrow = TRUE)
rownames(wide) <- c('Alice', 'Bob', 'Carol')
colnames(wide) <- c('Jan', 'Feb', 'Mar', 'Apr')
cat('Wide format:
'); print(wide)

# Transposed: 4 months x 3 students
long_view <- t(wide)
cat('Transposed (months x students):
'); print(long_view)

Zusammenfassung: Umformen und Kombinieren

Wichtige Werkzeuge zum Umformen und Kombinieren von Matrizen:

  • t(m) – transponieren (Zeilen und Spalten vertauschen)
  • dim(m) <- c(r, c) – direkt umformen (gleiche Gesamtzahl an Elementen)
  • as.vector(m) – in einen eindimensionalen Vektor abflachen (spaltenweise)
  • as.matrix(v) – Vektor in eine Matrix mit einer Spalte umwandeln
  • rbind(...) – Matrizen vertikal stapeln
  • cbind(...) – Matrizen horizontal zusammenfügen
# Demo all tools
v <- 1:6
m1 <- as.matrix(v)               # 6x1
dim(m1) <- c(2, 3)               # reshape to 2x3
m2 <- t(m1)                      # 3x2
m3 <- cbind(m2, c(10, 20, 30))   # 3x3
cat('Final matrix:
'); print(m3)

Schnelltest

Welche Dimensionen erzeugt t(matrix(1:12, nrow = 3, ncol = 4))?

Zusammenfassung: Transponieren und Umformen

Ausgezeichnet! Die wichtigsten Erkenntnisse aus dieser Lektion:

  • t(m) vertauscht Zeilen und Spalten; t(t(m)) gibt die ursprüngliche Matrix zurück
  • dim(m) <- c(r, c) formt ohne Kopieren um (die Anzahl der Elemente muss gleich bleiben)
  • as.vector() flacht spaltenweise ab; as.matrix() erstellt eine Matrix mit einer Spalte
  • rbind() stapelt Zeilen (gleiche Spaltenanzahl erforderlich)
  • cbind() fügt Spalten nebeneinander zusammen (gleiche Zeilenanzahl erforderlich)
  • Benannte Dimensionen bleiben bei diesen Operationen erhalten
# Practical: merge data then compute column means
team_a <- matrix(c(82,78,91, 85,80,88), nrow = 2, byrow=TRUE)
team_b <- matrix(c(75,92,79, 88,84,93), nrow = 2, byrow=TRUE)
all_teams <- rbind(team_a, team_b)
colnames(all_teams) <- c('Speed', 'Accuracy', 'Strength')
cat('Combined teams:
'); print(all_teams)
cat('Average per skill:', colMeans(all_teams), '
')

Häufig gestellte Fragen

Ist die Lektion „Matrizen transponieren und umformen“ kostenlos?

Ja — der vollständige Text von „Matrizen transponieren und umformen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Matrizen transponieren und umformen“?

Verwenden Sie t(), dim() und reshape-Operationen auf Matrizen. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um R Academy zu starten?

Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Matrizen transponieren und umformen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?

Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Matrizen mit matrix() erstellen
  2. Matrixindizierung und Subsetting
  3. Matrixarithmetik und -operationen
  4. Matrizen transponieren und umformen
← Zurück zu R Academy