我有一个矩阵,比如X
,我需要在R中使用它的列。我使用colnames
命令命名每一列。但是,当我键入列的名称时,没有任何内容出现。为了说明,我使用了如下代码:
colnames(X) <- c("column1","column2")
当我输入X
时,column1
和column2
会显示在列的顶部。但是,当我输入column1
或column2
时,无法找到它们。
有谁知道需要做什么?
答案 0 :(得分:5)
这是R
的一个相当基本的部分,当你有一个列名,行名,列表元素名等时,你必须首先告诉R
该对象。 / p>
在您的情况下,您必须这样做:
X[,"column1"]
获取column1
。
更好的选择是data.frame
:
X <- data.frame(Column1 = c(....), Column2 = c(....))
X$Column1 #Returns "Column1"
在这两种情况下,您现在正确地告诉R在column1
内寻找名为X
的内容。
正如Matthew在下面所述,如果您需要在不提及column
的情况下致电X
,则可以先使用attach(X)
。大多数人都倾向于避免这种情况,因为它会创建元素的新副本 - 如果最终更改column1
答案 1 :(得分:3)
这是一个矩阵:
X <- matrix(1:6, ncol=2)
colnames(X) <- c("column1","column2")
X
column1 column2
[1,] 1 4
[2,] 2 5
[3,] 3 6
attach(as.data.frame(X))
column1
[1] 1 2 3