从矩阵中提取后访问丢失的列名称

时间:2012-12-21 22:52:11

标签: r matrix

我有一个矩阵:

a<-c(0,1,3,5,56,3)
b<-c(1,4,3,10,3,50)
c<-cbind(a,b)
c<-as.matrix(c)

然后我创建了一个c:

的子集
d<-c[1,1]

我想获得d的专栏名称。 colnames(d)不起作用。

2 个答案:

答案 0 :(得分:8)

默认情况下,

[会默认删除维度,这会导致结构从矩阵更改为向量。禁用此行为:

x <- cbind(a,b)
d <- x[1,1,drop=FALSE]

> colnames(d)
[1] "a"

请注意,你没有丢失名字。它们不再是列名:

d <- x[1,1]
names(d)
[1] "a"

如果您有行名和列名,并且在选择单个元素时使用默认值drop=TRUE,则结果中不会出现名称。 R无法知道您是否要保留行名或列名。

rownames(x) <- letters[7:12]
names(x[1,1])
NULL

答案 1 :(得分:0)

尝试使用“名称”而不是“colnames”

names (d)

[1] "a"