按第一列排序矩阵列表

时间:2014-06-22 21:27:25

标签: r list sorting matrix

我有一个包含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"。不知道该怎么做。但它适用于一个矩阵。

请帮帮我。谢谢!

1 个答案:

答案 0 :(得分:2)

你几乎就在那里 - 但是你需要遍历列表来重新排序每个矩阵。

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

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

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