Как изменить типы вершин первого и второго рода в двудольном графе? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу создать сеть стран путем совместного участия в кинопроизводстве, но с моим кодом у меня получится обратный результат (фильмы по странам).

Я читал, что «двудольные графы имеют атрибут вершины типа в igraph, это логическое значение и FALSE для вершин первого рода и TRUE для вершин второго типа». Итак, я думаю, что я должен изменить типы вершин, но не знаю как.

К сожалению, данные находятся в закрытом доступе, поэтому загрузить их невозможно, но в последней матрице (а) страны представлены в виде столбцов, а фильмы - в виде строк. Я также пытался перевернуть df, но это не помогло (вершинами на графике были страны, как я хотел, но между ними не было связей).

#I load df and make some changes with it 
  movies <- read_csv("~/shared/mi_2018/data/movies.csv") %>% 
  select(movie_id, production_countries)
  movies_with_countries = extract_json2(df = movies, col = "production_countries")
  a = spread(movies_with_countries, key = production_countries_sep, 
  value = production_countries_v)
  row.names(a) <- a$movie_id
  a = a %>% select(-movie_id, -production_countries)
  a[is.na(a)] <- 0

 #Here I make a bipartite graph, but the result is reverse compared to what I expected
  bg = graph.incidence(a)
  V(bg)$type
  pr = bipartite.projection(bg)
  q = get.adjacency(pr$proj1,sparse=FALSE,attr="weight")
  plot(pr$proj1,edge.width=E(pr$proj1)$weight^2,edge.color="black",vertex.label=V(pr$proj1)$name)

Я ожидаю, что на графике будет представлена ​​взаимосвязь стран по их совместному участию в кинопроизводстве, но в фактическом графике речь идет о фильмах, связанных по странам.

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