Создание подграфа с использованием двухсторонней сети

У меня есть набор фильмов и актеров - каждая строка представляет собой комбинацию двух. Я хочу создать график, в котором фильмы связаны, когда они делят двух или более актеров. Список актеров сохраняется в переменной ctors.2000.

Я уже провел такой анализ, принимая актеров за вершины. Теперь я хочу сделать это наоборот. Однако, если я изменю данные с актеров на фильмы и возьму proj1 команды bipartite.projection, индуцированный подграф возвращает пустой граф.

library(igraph)
all.actors <- dt.movie.actor[, list(name=unique(actor), type=TRUE)]
all.movies <- dt.movie.actor[, list(name=unique(movie), type=FALSE)]

all.vertices <- rbind(all.actors, all.movies)
g.movie.actor <- graph.data.frame(dt.movie.actor[, list(movie, actor)],
                                 directed=FALSE,
                                 vertices=all.vertices)


g.actors <- bipartite.projection(g.movie.actor)$proj2


g.actors <- induced.subgraph(g.actors, vids = V(g.actors)$name %in% actors.2000)

Мой код для графа с фильмами в виде вершин выглядит следующим образом. Сначала я смотрю фильмы, в которых участвовали актеры. Затем я использую команду двудольного проецирования, чтобы построить сеть только из фильмов. Затем я использую команду induce.subgraph, чтобы отфильтровать только те фильмы, которые находятся в векторе movies.actors.2000.

actors.2000 <- dt.awards.actor[award == "72nd_Annual_Academy_Awards__The_2000", 
                              actor]
movies.actors.2000 <- dt.movie.actor[actor %in% actors.2000, list(unique(movie))]
movies.actors.2000

g.movies <- bipartite.projection(g.movie.actor)$proj1
g.movies <- induced.subgraph(g.movies, vids = V(g.movies)$name %in% movies.actors.2000)

summary(g.movies)

Однако, когда я использую команду summary, она возвращает пустой график. Я понятия не имею, что я делаю неправильно.

Кто-нибудь, кто мог бы помочь мне?

0 ответов

Другие вопросы по тегам