1

I have a matrix, say X, whose columns I need to use in R. I named each column using the colnames command. However, when I type the name of a column, nothing comes up. To illustrate, I used a code like the one below:

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

When I type X, column1 and column2 appear at the top of the columns. However, when I type column1 or column2, they cannot be found.

Does anyone know what needs to be done?

4

2 回答 2

7

这是一个相当基本的部分R,当你有一个列名、行名、列表元素名等时,你必须告诉R对象先看里面。

在您的情况下,您必须执行以下操作:

X[,"column1"] 

得到column1.

对您来说更好的选择是data.frame

X <- data.frame(Column1 = c(....), Column2 = c(....))
X$Column1 #Returns "Column1"

在这两种情况下,您现在都正确地告诉 R 查找名为column1insideX东西。

正如 Matthew 在下面所说,如果您需要在column不参考的情况下调用X,您可以attach(X)先使用。大多数人倾向于避免这种情况,因为它会创建元素的新副本——如果你最终改变它会变得混乱column1

于 2012-12-24T22:20:02.003 回答
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
于 2012-12-24T21:53:43.713 回答