将相关矩阵转换为R中的Pajek输入文件

时间:2011-09-20 02:20:48

标签: r

我需要将相关矩阵转换为Pajek输入文件以进行网络分析。 更具体地说,我正在尝试使用R将相关p值矩阵转换为重要相关性的“rowname columnname”列表。这是很多变量之间的每个重要相关性的列表。 如果我有变量a,b,c,d和a,c; b,d和a,d是相关的,我想列出如下列表:

a b;
b d;
a d

到目前为止,我不充分的R技能使我能够生成相关p值矩阵,在对角线上和下面插入NA(以避免无意义和重复的相关),并用pAL值替换为FALSE / TRUE,如果p值是非显着/重要的。 但是现在我陷入了困境,无法用谷歌的方式解决它。

1 个答案:

答案 0 :(得分:3)

这是一个可能有助于一些基础知识的例子:

#Create a matrix
m <- matrix(1:16,4,4)
rownames(m) <- letters[1:4]
colnames(m) <- letters[1:4]
m
  a b  c  d
a 1 5  9 13
b 2 6 10 14
c 3 7 11 15
d 4 8 12 16

#Identify the indices for entries in m
# that are greater than 10 
m1 <- which(m > 10, arr.ind = TRUE)

#Row and column names of those entries
# greater than 10. Notice the use of subsetting
# via [. 
cbind(rownames(m)[m1[,1]],colnames(m)[m1[,2]])
     [,1] [,2]
[1,] "c"  "c" 
[2,] "d"  "c" 
[3,] "a"  "d" 
[4,] "b"  "d" 
[5,] "c"  "d" 
[6,] "d"  "d" 

与R中的任何内容一样,有很多方法可以做这样的事情,但这应该会为你提供一些有用的工具。