1
我试图按行列名排列矩阵列表。R - 按rowname排列矩阵列表
mtx1 <- matrix(data = c(1:12), nrow = 4)
mtx2 <- matrix(data = c(13:24), nrow = 4)
row.names(mtx1) <- c("A", "B", "C", "D")
row.names(mtx2) <- c("A", "B", "C", "D")
my_list <- c("B", "D")
mtx_list <- list(mtx1, mtx2)
到目前为止,我已经尝试
sub_mtx_list <- lapply(mtx_list, subset, row.names(mtx_list) %in% my_list)
我想我会得到...
[[1]]
[,1] [,2] [,3]
B 2 6 10
D 4 8 12
[[2]]
[,1] [,2] [,3]
B 14 18 22
D 16 20 24
但是我收到一个空的矩阵集,而不是...
sub_mtx_list
[[1]]
[,1] [,2] [,3]
[[2]]
[,1] [,2] [,3]
任何帮助将不胜感激!
'lapply(mtx_list,function(x)x [row.names(x)%in%my_list,])' –
读取'?subset',它说:“这是一个便利功能,旨在交互使用。对于编程,最好使用标准子集函数,特别是参数子集的非标准评估可能会带来意想不到的后果。“ – Frank