我正在努力弄清楚如何将相同的 2 个节点之间的 2 条边折叠成 1 条,然后计算这些边的总和。
我相信有一种方法可以做到igraph
:
simplify(gcon, edge.attr.comb = list(weight = "sum", function(x)length(x)))
但如果可能的话,我想这样做,tidygraph
因为到目前为止我已经成功地实施了,tidygraph
而且我对tidyverse
工作方式更加熟悉。
我的数据如下所示:
from to Strength Dataframe Question Topic
1 0 32 4 weekly 1 Connection Frequency
2 0 19 5 weekly 1 Connection Frequency
3 0 8 3 weekly 1 Connection Frequency
4 0 6 5 weekly 1 Connection Frequency
5 0 2 4 weekly 1 Connection Frequency
6 0 14 5 weekly 1 Connection Frequency
'from' 和 'to' 包含相同的 id(例如 from-to;0-1 和 1-0)。我想浓缩,以便只存在 0-1 关系的一次迭代,并Strength
计算总和。
到目前为止,这是我的代码:
graph <- data %>%
filter(Dataframe == "weekly" & Question == 1) %>%
as_tbl_graph(directed = FALSE) %>%
activate(edges) %>% # first manipulate edges
filter(!edge_is_loop()) %>% # remove any loops
activate(nodes) %>% # now manipulate nodes
left_join(node.group, by = "name") %>%
mutate(
Popularity = centrality_degree(mode = 'in'),
Centre = node_is_center(),
Keyplayer = node_is_keyplayer(k = 5))
是否可以将两条对应的边合并为一条边?我搜索了论坛,但只遇到了相同节点在相同列中重复的引用(即跨多行的 0-1)。