Преобразовать матрицу корреляции во входной файл Pajek в R - PullRequest
1 голос
/ 20 сентября 2011

Мне нужно преобразовать матрицу корреляции во входной файл Pajek для анализа сетей. Более конкретно, я пытаюсь использовать R для преобразования матрицы р-значений корреляции в список «имя столбца строки» для значимых корреляций. Это список каждой из существенных корреляций между довольно большим количеством переменных. Если у меня есть переменные a, b, c, d и a, c; b, d и a, d были соотнесены, я хотел бы получить следующий список:

a b;
b d;
a d

До сих пор мои неадекватные навыки R позволили мне сгенерировать матрицу p-значений корреляции, вставить NA по диагонали и ниже диагонали (чтобы избежать бессмысленных и дублированных корреляций) и заменить p-значения на FALSE / TRUE, если р-значение не является значимым / значимым. Но теперь я застрял и не смог найти выход.

1 Ответ

3 голосов
/ 20 сентября 2011

Вот пример, который может помочь с некоторыми основами:

#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, есть много способов сделать что-то подобное, но это должно дать вам несколько полезных инструментов для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...