如何解决根据其他二分投影设置一个二分投影的边缘属性
我正在用igraph中的二分投影和单模网络做一些工作。有没有一种方法可以使用另一个模式(下面的家乡网络)的顶点来标记一个模式下的网络(下面的艺术家网络)的边缘?
我想做类似下面的事情,但是担心随着艺术家节点数量的增加以及家乡之间的关系开始出现(例如,在两个小镇之间分配时间的艺术家),它不会扩展。
谢谢!
library(tibble)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter,lag
#> The following objects are masked from 'package:base':
#>
#> intersect,setdiff,setequal,union
library(igraph)
#>
#> Attaching package: 'igraph'
#> The following objects are masked from 'package:dplyr':
#>
#> as_data_frame,groups,union
#> The following object is masked from 'package:tibble':
#>
#> as_data_frame
#> The following objects are masked from 'package:stats':
#>
#> decompose,spectrum
#> The following object is masked from 'package:base':
#>
#> union
df <- tibble(user = c("Mac Miller","Wiz Khalifa","Arizona Zervas","Lil Wayne","Birdman","Logic"),hometown = c("Pittsburgh","Pittsburgh","DC","New Orleans","DC"))
g <- graph_from_data_frame(df) %>%
igraph::set_vertex_attr(.,name = "type",value = V(.)$name %in% df$hometown) %>%
bipartite_projection()
igraph::get.edgelist(g$proj1)
#> [,1] [,2]
#> [1,] "Mac Miller" "Wiz Khalifa"
#> [2,] "Arizona Zervas" "Logic"
#> [3,] "Lil Wayne" "Birdman"
g1 <- igraph::set.edge.attribute(graph = g$proj1,name = "hometown",value = get.vertex.attribute(g$proj2)$name)
get.edgelist(g1)
#> [,] "Lil Wayne" "Birdman"
get.edge.attribute(g1)
#> $weight
#> [1] 1 1 1
#>
#> $hometown
#> [1] "Pittsburgh" "DC" "New Orleans"
由reprex package(v0.3.0)于2020-08-19创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。