按列名引用变量

时间:2012-12-24 21:50:30

标签: r

我有一个矩阵,比如X,我需要在R中使用它的列。我使用colnames命令命名每一列。但是,当我键入列的名称时,没有任何内容出现。为了说明,我使用了如下代码:

colnames(X) <- c("column1","column2")

当我输入X时,column1column2会显示在列的顶部。但是,当我输入column1column2时,无法找到它们。

有谁知道需要做什么?

2 个答案:

答案 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