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

use*_*765 2 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)
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个c的子集:

d<-c[1,1]
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*erg 8

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

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

> colnames(d)
[1] "a"
Run Code Online (Sandbox Code Playgroud)

请注意,您没有丢失名称.它们不再是列名:

d <- x[1,1]
names(d)
[1] "a"
Run Code Online (Sandbox Code Playgroud)

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

rownames(x) <- letters[7:12]
names(x[1,1])
NULL
Run Code Online (Sandbox Code Playgroud)