2012-12-24 74 views
0

我有一個矩陣,說X,我需要在R中使用它的列。我使用colnames命令命名每列。但是,當我鍵入列的名稱時,什麼都沒有出現。爲了說明,我使用的代碼像下面的一個:按列名引用變量

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

當I型Xcolumn1column2出現在列的頂部。但是,當我輸入column1column2時,無法找到它們。

有誰知道需要做什麼?

+0

這不是他要求的 –

+0

對不起,我誤解了你的意圖。 –

回答

2

這裏有這樣一個矩陣:

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 
+0

謝謝馬修。這是有效的,但恐怕不是我正在尋找的東西。我只需要通過它們的列名稱來調用它們。由此,我的意思是當我鍵入column1(或任何我稱之爲)時,該列中的數字應該出現。 –

+1

@Günal編輯。也許你需要「附加」,但這不適用於「矩陣」。 –

+0

不幸的是,正如馬修所說,附着不適用於矩陣。還有什麼可以做的傢伙?想請 –

5

這是R一個相當基本的部分,當你有一個列名,列名,列表元素名稱等,你要告訴R的對象先看看裏面。

在你的情況,你就必須做:

X[,"column1"] 

得到column1

爲您更好的選擇是一個data.frame

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

在這兩種情況下,你現在可以正確地告訴R鍵尋找名爲column1X裏面的東西。

正如馬修在下面所述,如果您需要撥打column而不參考X,則可以先使用attach(X)。大多數人傾向於避免這種情況,因爲它創造了一個新的元素 - 如果你最終改變了,可能會變得混亂column1

+1

如果它是一個data.frame,'attach'是提問者可能想要的。 –