按照第一列排序矩阵列表

3

我有一个列表,其中包含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"。不知道该怎么办。尽管使用一个矩阵可以正常运行。

请帮帮我,谢谢!


你需要为列表中的每个矩阵找到“order”。这个 lapply(list.a, function(x) x[order(x[,1]),]) 有效吗? - user20650
3
我认为你应该这样做,通过提供正确的答案获得声望。 - talat
1个回答

3
你已经接近成功了 - 但你需要遍历列表,重新排列每个矩阵。
更容易的方法是使用一个lapply语句来完成这项工作。
lapply(list.a, function(x) x[order(x[,1]),])

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接