我是R的新手,我想向专家询问colnames
中的R
功能。使用该函数我意识到如果用于矩阵对象的单个列,它提供NULL
,但是对于矩阵对象的多于1列,它可以完美地工作。为了说明,我说我有矩阵test
>test<-matrix(0,ncol=4,nrow=5)
>colnames(test)<-c("A","B","C","D")
>colnames(test[,1]) or colnames(test[,c(1)]) gives output as NULL
NULL
而以下工作正常,
colnames(test[,c(1:2)])
[1] "A" "B"
我理解另一种方法是使用colnames(test)[c(1:2)]
。在我得到NULL
的情况下,我是否遗漏了一些内容。
答案 0 :(得分:1)
如果您查看?colnames
的说明。您会看到它需要x
参数a matrix-like R object, with at least two dimensions for colnames.
当您致电colnames(test[,1])
时,您正在给colnames
一个1维向量。比较class(test[,1])
与class(test[,c(1:2)])
。向量不具有列或行,因此没有列或行名称。您可以在向量中包含命名元素,但这绝对不等同于矩阵中的列名
提取单个(或多个)列名称的最佳方法是从列名称的完整向量中选择列
colnames(test) # gives you all column names
colnames(test)[1] # gives you the column name 1
colnames(test)[c(1,2)] # gives you column names 1 and 2
这是否为您澄清了这个问题?