【问题标题】:Sorting list of matrices by the first column按第一列排序矩阵列表
【发布时间】:2014-08-12 21:38:28
【问题描述】:

我有一个包含 4 个矩阵的列表,每个矩阵有 21 个随机数,分为 3 列和 7 行。

我想使用 lapply 函数创建新列表,其中每个矩阵按第一列排序。

我试过了:

#example data
set.seed(1)
list.a <- replicate(4, list(matrix(sample(1:99, 21), nrow=7)))

ordered <- order(list.a[,1])

lapply(list.a, function(x){[ordered,]})

但在第一步,R 给了我错误"incorrect number of dimensions"。不知道该怎么办。不过,它适用于一个矩阵。

请帮助我。谢谢!

【问题讨论】:

  • 您需要为列表中的每个矩阵找到order。这lapply(list.a, function(x) x[order(x[,1]),]) 有效吗?
  • 是的,它有效!非常感谢!
  • @user20650 IMO,您应该这样做并因提供正确答案而赢得代表。
  • @user20650 我接受了你的回答,再次感谢!
  • @beginneR;很公平,很懒

标签: r list sorting matrix


【解决方案1】:

您快到了 - 但您需要遍历列表以重新排序每个矩阵。

更容易做到这一点是一个lapply 声明

lapply(list.a, function(x) x[order(x[,1]),])

请注意,函数调用中的x 表示列表中的矩阵。

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多