我有一个包含 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/