2016-06-08 54 views
1

我试图从矩阵选择中获取dimnames夫妇。获取匹配值的dimnames的名称

names<-c("n1", "n2", "n3") 
mat<-matrix(0, nrow=length(names), ncol=length(names), dimnames=list(names, names)) 
mat[1,2]<-3 
mat[3,2]<-6 
mat 

输出是:

n1 n2 n3 
n1 0 3 0 
n2 0 0 0 
n3 0 6 0 

我想获得所有的夫妻大于0:

n1,n2 
n2,n3 

使用rownames和colnames给我NULL。

+2

尝试:'matrix(rownames(mat)[which(mat!= 0,arr.ind = TRUE)],ncol = 2)'。 – nicola

+0

@ zx8754完成,ty。 – nicola

回答

2

尝试这种情况:

matrix(rownames(mat)[which(mat!=0,arr.ind=TRUE)],ncol=2) 
#  [,1] [,2] 
#[1,] "n1" "n2" 
#[2,] "n3" "n2" 

所得矩阵的每一行示出了不同的索引从零元素。