【问题标题】:R: error in dimnames when using colnames with matrixR:将列名与矩阵一起使用时,暗名中的错误
【发布时间】:2018-11-05 04:16:38
【问题描述】:

想象一下用 NA 预分配一个 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"

我的问题是,有没有人知道如何更多地了解这种意外行为以及如何解决它?

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    问题是在第一行之后

    name_matrix<-matrix(NA,2,2)
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2020-01-25
      相关资源
      最近更新 更多