【问题标题】:Subset multiple matirces to the same number of rows and columns in R将多个矩阵子集为 R 中相同的行数和列数
【发布时间】:2014-03-17 16:20:27
【问题描述】:

我创建了一个名为“Mix”的多个矩阵列表,我需要将列表中的所有矩阵子集化为相同数量的行和列(5:1、5:20)。我试过了,但没有用:

NM<-lapply(Mix, subset(c(5:31,5:20)))

我也试过了:

NM<-lapply(Mix, subset(c[5:31],c[5:20]))

还是不行。对 Mix 中的所有矩阵进行子集化的最佳选择是什么?

【问题讨论】:

  • 为什么不使用:NM &lt;-lapply(Mix, function(x) x[5:31,5:20]),如果你想将它们合并成一个矩阵,do.call("rbind",NM)
  • 谢谢 rmk。我刚试了一下,观察到其中一个矩阵的维度可能更小。有没有一个命令可以从整个矩阵中检查这一点,而不是一个接一个地检查它们?
  • do.call('rbind', lapply(NM, dim)) 应该为您提供 NM 中所有矩阵的维度。然后您可以检查它们是否匹配。
  • 谢谢 rmk。它奏效了

标签: r list matrix subset


【解决方案1】:

作为答案发布,以结束问题:

NM <-lapply(Mix, function(x) x[5:31,5:20]) 

#To merge them into one matrix
NM <- do.call("rbind",NM)

#To check size of each matrix/subset
do.call('rbind', lapply(Mix, dim))

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2016-07-13
    • 2021-07-15
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多