在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的值。等等。
最简单的方法是什么?
谢谢。答案 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])]
}