2013-12-19 81 views
1

我想索引从矩阵中选择一列,同时保持为colname。例如是否可以在保留其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的行为如此,我该如何解决?谢谢。

回答

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

+0

谢谢,我不知道'drop'参数。 – tomka

相关问题