如何通过列表中的下标(R中的列表)提取矩阵值

时间:2018-06-01 18:15:30

标签: r list matrix

我对R中的矩阵值提取有疑问 具体来说,我有一个列表存储下标和相应的矩阵。我想要做的是根据列表的下标提取矩阵值,但仍然是列表。

例如:

下标列表A:((1,2,3),(4,5),(6,7,8,9)) 矩阵B:[3,4,12,35,35,13,​​2,3,34]

预期结果清单C:((3,4,12),(35,35),(13,2,3,34))

我尝试使用“[]”或“[[]]”矩阵操作,但不能正常工作。 我怎么做这个计算? 非常感谢!

1 个答案:

答案 0 :(得分:1)

subs <- list(c(1,2,3),c(4,5),c(6,7,8,9))
mat <- as.matrix(c(3,4,12,35,35,13,2,3,34))

lapply(subs, function(s) { mat[s] })
# [[1]]
# [1]  3  4 12
# 
# [[2]]
# [1] 35 35
# 
# [[3]]
# [1] 13  2  3 34