我有一个矩阵m
和一个向量v
。向量指定每个m
列中我需要的元素。 v
的长度等于m
中的列数。我试过apply(m,2, FUN)
但是没能找到合适的功能去做。我的数据和载体定义如下。
set.seed(12)
m <- matrix(sample(1:100,28),4)
v <- c(3,2,2,3,1,4,3)
我想要的结果是向量vv
:
vv <- c(93,4,1,23,39,82,85)
非常感谢帮助!
答案 0 :(得分:1)
矩阵元素也可以通过2列矩阵索引。这样的矩阵确定要提取的元素(#row,#column)。 在你的情况下,这些是(3,1),(2,2),(2,3),(3,4)等,即(v [1],1),(v [2],2) , 等等。因此,这是一个解决方案:
set.seed(12)
m <- matrix(sample(1:100,28),4)
v <- c(3,2,2,3,1,4,3)
m[cbind(v,seq_along(v))]
## [1] 93 4 1 23 39 82 85