2015-11-17 66 views
0

我有一個矩陣B如何正確地訪問每個元素在矩陣

B<-structure(c(0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 
1, 0, 1, 1, 1, 0, 1, 0), .Dim = c(5L, 5L), .Dimnames = list(c("2", 
"1", "4", "3", "5"), c("2", "1", "4", "3", "5"))) 

當我嘗試訪問B[1,3]它給了我0而不是1

我不知道是否有正確訪問這樣的矩陣R中

+0

使用'輸入(B)',這是難以辨認的 – MichaelChirico

+1

學習'help(「[」)'。 – Roland

回答

4

當你發現一個簡單的方法,使用數字指數ij讓你的i行第j列 - - 不管這些行和列是什麼名稱。如果您希望將行命名爲"i"和列命名爲"j",請使用字符向量作爲您的索引。

B[1,3] 
# [1] 0 

B["1","3"] 
# [1] 1 

help("Extract")引用:

I,J,......

索引指定的元素來提取或更換。索引是數字 或字符向量或空(缺少)或NULL。數字值爲 ,由as.integer強制爲整數(因此截斷爲 爲零)。字符向量將與對象 (或矩陣/數組,暗淡名稱)的名稱匹配:有關更多詳細信息,請參閱 以下的「字符索引」。

2

在R中,使用B[1,3]表示第一行和第三列的值。使用引號來使用rownames和colnames。

B<-matrix(c(0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0),nrow=5) 
rownames(B)<-c(2,1,4,3,5) 
colnames(B)<-c(2,1,4,3,5) 

B 
    2 1 4 3 5 
2 0 0 0 1 1 
1 0 0 1 1 1 
4 0 1 0 1 0 
3 1 1 1 0 1 
5 1 1 0 1 0 

B[1,3] # first row (named 2) and third column (named 4) 
[1] 0 

B['1','3'] # row named 1 (which is the second row) and column named 3 (which is the fourth column) 
[1] 1