想象一下用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"
我的问题是,是否有人知道如何找到有关这种意外行为的更多信息,以及如何修复它?
答案 0 :(得分:1)
问题是在第一行之后
name_matrix<-matrix(NA,2,2)
colnames(name_matrix)
的值为NULL
,访问其第一个条目colnames(name_matrix)[1]
没有意义。
相反,您必须为整个变量分配长度为2的向量。
例如,你可以这样做:
colnames(name_matrix)<- c("Test", NA)