R:从特定列获取行

时间:2014-03-08 00:09:55

标签: r

在R中,假设您有一个命名数字,例如:

3777 3727 3421 2373 3259  512 3174 3456 3536  805 
   4    4    8    9    2    2    6    4    6    6

顶部的值是来自较大矩阵的rownames,而它下面的值是我想从该行获得的数据列。

所以,我想从数据帧(或矩阵)行获取名称为3777,col 4的值。等等。

最简单的方法是什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用行索引而不是行名吗?如果是这样,您不需要循环:

a <- rnorm(10000)
M <- matrix(a,nrow=100)
c1 <- c(1,3,4,5,9) #3777 3727 3421 2373 3259  512 3174 3456 3536  805
c2 <- c(3,8,10,11,23)  #   4    4    8    9    2    2    6    4    6    6
M[cbind(c1,c2)]
# [1] -0.8216866  0.5427404  0.4462874 -0.6547175 -1.6598367

答案 1 :(得分:0)

我这样做的方式是:

myMatrix #any matrix

myNamedNum #from above example

for (i in 1:length(myNamedNum)){

    myMatrix[names(myNamedNum[i]),as.numeric(myNamedNum[i])]
}