У меня есть список графиков (формат igraph), и я бы хотел получить граф слияния, который был бы пересечением тех узлов и вершин, которые разделены определенным процентом через все графики.пересекают графики, разделяющие процент ребер и вершин
Я знаю, что библиотека igraph имеет функцию graph.intersection()
, но эта функция пересекает все вершины и узлы, присутствующие на всех графиках.
Любая помощь будет высоко ценится
Вот краткий пример
g1 <- graph.data.frame(df1, directed=F)
df2 <- data.frame(V1=c(1,2,2,3,4), V2=c(3,3,5,5,5))
g2 <- graph.data.frame(df2, directed=F)
df3 <- data.frame(V1=c(1,2,3,4), V2=c(3,3,5,5))
g3 <- graph.data.frame(df3, directed=F)
df4 <- data.frame(V1=c(1,1,2,3), V2=c(2,3,4,5))
g4 <- graph.data.frame(df4, directed=F)
get.edgelist(g1)
[,1] [,2]
[1,] "1" "3"
[2,] "2" "3"
[3,] "2" "4"
[4,] "3" "5"
[5,] "4" "5"
get.edgelist(g2)
[,1] [,2]
[1,] "1" "3"
[2,] "2" "3"
[3,] "2" "5"
[4,] "3" "5"
[5,] "4" "5"
get.edgelist(g3)
[,1] [,2]
[1,] "1" "3"
[2,] "2" "3"
[3,] "3" "5"
[4,] "4" "5"
get.edgelist(g4)
[,1] [,2]
[1,] "1" "2"
[2,] "1" "3"
[3,] "2" "4"
[4,] "3" "5"
Если я ставлю все графы в списке:
mylist <- list(g1,g2,g3,g4)
, а затем применить функцию graph.intersection()
:
g.int <- graph.intersection(mylist, keep.all.vertices=FALSE)
В результате график со следующими узлами и ребрами:
V(g.int)
[1] "1" "2" "3" "4" "5"
get.edgelist(g.int)
[,1] [,2]
[1,] "3" "5"
[2,] "1" "3"
То, что я хочу, чтобы включить эти вершины и ребра, которые появляются в определенный процент, в этом примере я хотел бы включить края, присутствующие в 75 % графиков. Таким образом, оптимальный результат будет:
V(g.int)
[1] "1" "2" "3" "4" "5"
get.edgelist(g.int)
[,1] [,2]
[1,] "3" "5"
[2,] "1" "3"
[3,] "4" "5"
Надежда теперь более ясно
Как написано, этот вопрос очень широк и трудно ответить в общем случае. Укажите [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Включите некоторые примеры данных, а также желаемый результат. Это сделало бы ваш вопрос намного легче ответить. – MrFlick
Вы пытались добавить матрицы смежности? –
Не @WillBeason, может быть, я должен дать ему попробовать – user2380782