我正在尝试来自不同实验处理的网络上的 tidygraph,并且最感兴趣的是获取图形范围的指标以及可能的节点级指标。我似乎无法理解 tidygraph 的工作方式。
我正在使用 R v3.5 和 tidygraph v1.1。
我的数据是这样组织的:
dat <- data.frame(Treatment = rep(c("A","B"),each = 2),
from = c("sp1","sp2","sp1","sp2"),
to = c("sp2","sp3","sp3","sp3"),
weight = runif(4))
如果我想为每次治疗获得一个图形范围的指标,例如直径,我很想这样做:
dat %>%
as_tbl_graph() %>%
activate(edges) %>%
group_by(Treatment) %>%
mutate(Diameter = graph_diameter(weights = weight))
但是我不确定结果,因为然后给出了每个边缘的直径,而我期望每次处理(每个图表)都有一个测量值。
同样,如果我想导出一些指标,例如每个处理的每个节点的连接性,这似乎不是那么简单,因为处理变量是从节点表中删除的。在调用as_tbl_graph()之前,我一直在尝试各种技巧,例如将治疗 ID 粘贴到from和to列:
dat %>%
mutate(from = paste(from, Treatment, sep = "_"),
to = paste(to, Treatment, sep = "_")) %>%
as_tbl_graph() %>%
mutate(Treatment = substr(name, 5, 5), name = substr(name, 1, 3)) %>%
group_by(Treatment) %>%
mutate(Centrality = centrality_betweenness())
但我得到的错误是结果向量的大小错误(6 而不是 3 或 1)。
tidygraph 有没有办法派生组级图形范围和节点级指标?