读取列名称并获取超出边界的下标 - R

时间:2016-06-25 18:20:07

标签: r

我有一个矩阵(RR),列名是整数。当我将marix的元素称为RR[x, c("5")]时,它可以正常工作,但当我将其更改为

Myindex <-5
RR[x, c("Myindex")] 

我收到错误subscript out of bounds。到目前为止我无法理解。

BTW,5只是一个例子。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

即使您将列名称命名为numbers,也会将其视为character列名称。

rr <- matrix(1:15,3,5)
colnames(rr) <- c(21:25)
rr
#      21 22 23 24 25
# [1,]  1  4  7 10 13
# [2,]  2  5  8 11 14
# [3,]  3  6  9 12 15

rr[1,"23"]
# 23              ## column name is 23
#  7 

my_index <- 4
rr[3,my_index]
# 24              ## column name is 24
# 12 

my_index <- "25"
rr[3,my_index] 
# 25              ## column name is 25
# 15 

colnames(rr) <- as.integer(c(21:25))
rr
#   21 22 23 24 25
# [1,]  1  4  7 10 13
# [2,]  2  5  8 11 14
# [3,]  3  6  9 12 15

class(colnames(rr))
# [1] "character"