我有一个矩阵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 :(得分:4)
正如您所发现的那样,使用数字索引i
和j
可以获得i
行和j
列 - - 无论这些行和列的名称是什么。如果您想要命名 "i"
行和名为 "j"
的列,请使用字符向量作为索引。
B[1,3]
# [1] 0
B["1","3"]
# [1] 1
我,j,......
指定要提取或替换的元素的索引。指数是数字 或字符向量或空(缺失)或NULL。数值是 通过as.integer强制转换为整数(因此截断为 零)。字符向量将与对象的名称匹配 (或对于矩阵/数组,dimnames):请参阅下面的“字符索引” 有关详细信息。
答案 1 :(得分: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