R:使用带矩阵的colnames时的dimnames错误

时间:2018-05-25 18:06:17

标签: r matrix

想象一下用NAs预分配2x2矩阵的情况。现在我想用

将第一列重命名为“Test”
name_matrix<-matrix(NA,2,2)
colnames(name_matrix)[1] <- "Test"

但现在我收到错误消息:

Error in dimnames(x) <- dn : length of 'dimnames' [2] not equal to array extent

然而,如果我首先将矩阵转换为data.frame,我不会以此错误消息结束。

name_data_frame<-as.data.frame(name_matrix)
colnames(name_data_frame)[1] <- "Test"

我的问题是,是否有人知道如何找到有关这种意外行为的更多信息,以及如何修复它?

1 个答案:

答案 0 :(得分:1)

问题是在第一行之后

name_matrix<-matrix(NA,2,2)

colnames(name_matrix)的值为NULL,访问其第一个条目colnames(name_matrix)[1]没有意义。 相反,您必须为整个变量分配长度为2的向量。 例如,你可以这样做:

colnames(name_matrix)<- c("Test", NA)