是否可以在保留其colname的同时选择列?

时间:2013-12-19 13:48:47

标签: r indexing names

我想索引从矩阵中选择一列,同时保持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的行为如此,我该如何解决?感谢。

1 个答案:

答案 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阻止了这一点。