我想对特定的行进行行绑定,这些特定的行是列表中矩阵中的行。例如,我可能有一个包含三个矩阵的列表,例如:
> t
[[1]]
[,1] [,2]
[1,] 1 3
[2,] 2 4
[[2]]
[,1] [,2]
[1,] 5 7
[2,] 6 8
[[3]]
[,1] [,2]
[1,] 9 11
[2,] 10 12
然后我想做的就是计算这些矩阵的行之间的距离,所以只要我能写出
dist(rbind(t[[1]][1,], t[[2]][1,], t[[3]][1,]))
dist(rbind(t[[1]][2,], t[[2]][2,], t[[3]][2,]))
但是在我的情况下,我可以拥有更大的矩阵和更大的列表,所以我想知道是否有一种方法可以更快地对列表中矩阵的相应行进行行绑定?
非常感谢您的帮助!
答案 0 :(得分:2)
当然,如果l
是您的列表,我们可以通过以下方式使用sapply
:
t(sapply(l, `[`, 1,))
# [,1] [,2]
# [1,] 1 3
# [2,] 5 7
# [3,] 9 11
简写
t(sapply(l, `[`, i = 1, j =))
或
t(sapply(l, function(ll) ll[1, ]))