gpt4 book ai didi

r - 按行将矩阵列表组合成单个矩阵

转载 作者:行者123 更新时间:2023-12-03 09:43:49 25 4
gpt4 key购买 nike

假设我有一个矩阵列表(所有矩阵的列数都相同)。如何按行附加/组合这些矩阵('行绑定(bind)',rbind)以获得单个矩阵?

样本:

> 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)

现在我们可以在一个列表中有很多矩阵,假设我们只有两个:
l <- list(m1, m2)

我想实现类似:
> 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

我可以轻松地在 2 个矩阵上做到这一点,但我不确定如何使用矩阵列表来做到这一点。

最佳答案

使用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

您可能还对 rbind.fill.matrix() 感兴趣“plyr”包中的函数,它还可以让你绑定(bind)具有不同列的矩阵,用 NA 填充在必要时。
> m1 <- matrix(1, nrow=2, ncol=3)
> m2 <- matrix(2, nrow=3, ncol=4)
> l <- list(m1, m2)
> library(plyr)
> rbind.fill.matrix(l)
1 2 3 4
[1,] 1 1 1 NA
[2,] 1 1 1 NA
[3,] 2 2 2 2
[4,] 2 2 2 2
[5,] 2 2 2 2

关于r - 按行将矩阵列表组合成单个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com