我想索引从矩阵中选择一列,同时保持colname
。例如
m<-matrix(1:9,ncol=3)
colnames(m)<-c('V1','V2','V3')
selected<-as.matrix(m[,1])
然而,
> selected
[,1]
[1,] 1
[2,] 2
[3,] 3
我希望将colname(selected)<-'V1'
作为结果。为什么R的行为如此,我该如何解决?感谢。
答案 0 :(得分:4)
删除最后一行中的as.matrix()
并使用drop=FALSE
(请参阅?Extract
)
> m<-matrix(1:9,ncol=3)
> colnames(m)<-c('V1','V2','V3')
> m[,1,drop=FALSE]
V1
[1,] 1
[2,] 2
[3,] 3
你做的是选择一个专栏。默认情况下,R将删除不必要的所有维度(因此也删除名称)。在这种情况下,您可以删除一个维度,因为单个列可以视为向量。参数drop=FALSE
阻止了这一点。