我有一个包含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"
。不知道该怎么做。但它适用于一个矩阵。
请帮帮我。谢谢!
答案 0 :(得分:2)
你几乎就在那里 - 但是你需要遍历列表来重新排序每个矩阵。
更容易做到这一点是lapply
语句
lapply(list.a, function(x) x[order(x[,1]),])
请注意,函数调用中的x
表示列表中的矩阵。