r - 按第一列对矩阵列表进行排序

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

我想使用 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”。不知道该怎么办。不过,它适用于一个矩阵。

请帮帮我。谢谢!

最佳答案

您几乎完成了 - 但您需要遍历列表以重新排序每个矩阵。

它更容易做到这一点是一个lapply语句

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

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

https://stackoverflow.com/questions/24355902/

相关文章:

spring - 错误 : "Connection refused: connect. 验证连接属性

ruby-on-rails - 不知道如何构建任务 - cucumber

sorting - thenComparing 与 thenComparingInt 的性能 - 使

ports - 代理服务器的推荐端口

git - 从 git 中的分支中提取最新提交

oracle - Mysql Workbench 将 sql 导出到 Oracle 11

c# - 在 Entity Framework 中删除聚合根的子对象

json - 在 JSON-RPC 连接上读取多个 JSON 对象

hibernate - 在 JPA 中同时映射键和对象

design-patterns - 策略接口(interface)中的策略模式和方法数量