Powiedzmy, że mam listę macierzy (wszystkie z taką samą liczbą kolumn). Jak dodać / połączyć te macierze według wiersza („powiązanie wiersza”, rbind), aby uzyskać pojedynczą macierz?
Próbowałam tak:
> matrix(1, nrow=2, ncol=3)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
> matrix(2, nrow=3, ncol=3)
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
[3,] 2 2 2
> m1 <- matrix(1, nrow=2, ncol=3)
> m2 <- matrix(2, nrow=3, ncol=3)
Teraz możemy mieć wiele macierzy na liście, powiedzmy, że mamy tylko dwie:
l <- list(m1, m2)
Chciałbym osiągnąć coś takiego:
> rbind(m1, m2)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 2 2 2
[4,] 2 2 2
[5,] 2 2 2
Macie jakiś pomysł?
1 odpowiedź
Użyj do.call (rbind, ...)
:
> m1 <- matrix(1, nrow=2, ncol=3)
> m2 <- matrix(2, nrow=3, ncol=3)
> l <- list(m1, m2)
> do.call(rbind, l)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 2 2 2
[4,] 2 2 2
[5,] 2 2 2
Może Cię również zainteresować funkcja rbind.fill.matrix () z
pakietu „plyr
”, która pozwoli ci również na powiązanie macierzy z różnymi kolumnami, wypełniając w razie potrzeby.