如何解决从 R 中的矩阵获取维度值
假设这是我正在使用的矩阵:
我需要使用什么 R 代码来获取值的维度坐标?就像,如果我想获得值为 '0' 的坐标,它应该返回 (A,A),(B,B),(C,C) 等......我找不到答案任何地方..
解决方法
粗略的方法可能是:
nms <- dimnames(distance)
mat<- which(distance == 0,TRUE)
cbind(nms[[1]][mat[,1]],nms[[2]][mat[,2]])
[,1] [,2]
[1,] "A" "A"
[2,] "B" "B"
[3,] "C" "C"
[4,] "D" "D"
[5,] "E" "E"
[6,] "F" "F"
[7,] "G" "G"
甚至
do.call(outer,c(dimnames(distance),paste))[which(distance == 0,TRUE)]
[1] "A A" "B B" "C C" "D D" "E E" "F F" "G G"
distance <- structure(c(0,5,6,9,10,8,1,11,7,3,4,2,0),.Dim = c(7L,7L),.Dimnames = list(
c("A","B","C","D","E","F","G"),c("A","G")))
,
我们可以像下面这样使用 mapply
+ dinames
+ which
(感谢@Onyambu 的数据)
mapply(
`[`,dimnames(distance),data.frame(which(distance == 0,arr.ind = TRUE))
)
给出
[,] "B" "B"
[3,] "C" "C"
[4,] "D" "D"
[5,] "E" "E"
[6,] "F" "F"
[7,] "G" "G"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。