如何为 R 中的加权关联矩阵添加数值变量 "weights"?
How can I add a numeric variable as "weights" for a Weighted Incidence Matrix in R?
我想用 R 中的 igraph 包中的 graph_from_incidence_matrix 绘制一个加权网络。
我有什么(例):
episodes <- data.frame(
director = c("name1","name1","name1", "name1", "name2","name3", "name3"),
writer = c("name4", "name5", "name4", "name6", "name6", "name7", "name4"),
rating = c(7.5,8.5,7,9,9,6,9))
episodes
基本上,我希望网络情节显示谁与谁(导演兼编剧)合作,以及连接“权重”来描述评级#。
我不确定如何为此创建合适的矩阵。我已经设法创造了一种偶然性 table 但是有了这个我只得到了合作和合作的数量(见下文),我希望这些值能够描述评级(或者如果有任何其他方式将这些“权重”“添加”到网络图中。
#what I have so far:
episodes2 <- table(episodes$director, episodes$writer)
episodes2
这有意义吗?还是我在混淆东西?
感谢您的帮助!
尝试xtabs
> as.matrix(xtabs(rating ~ ., episodes))
writer
director name4 name5 name6 name7
name1 14.5 8.5 9.0 0.0
name2 0.0 0.0 9.0 0.0
name3 9.0 0.0 0.0 6.0
如果你想使用igraph
episodes %>%
graph_from_data_frame(directed = FALSE) %>%
set_vertex_attr(name = "type", value = names(V(.)) %in% episodes$director) %>%
simplify(edge.attr.comb = "sum") %>%
as_incidence_matrix(attr = "rating")
这给出了
name1 name2 name3
name4 14.5 0 9
name5 8.5 0 0
name6 9.0 9 0
name7 0.0 0 6
我想用 R 中的 igraph 包中的 graph_from_incidence_matrix 绘制一个加权网络。
我有什么(例):
episodes <- data.frame(
director = c("name1","name1","name1", "name1", "name2","name3", "name3"),
writer = c("name4", "name5", "name4", "name6", "name6", "name7", "name4"),
rating = c(7.5,8.5,7,9,9,6,9))
episodes
基本上,我希望网络情节显示谁与谁(导演兼编剧)合作,以及连接“权重”来描述评级#。
我不确定如何为此创建合适的矩阵。我已经设法创造了一种偶然性 table 但是有了这个我只得到了合作和合作的数量(见下文),我希望这些值能够描述评级(或者如果有任何其他方式将这些“权重”“添加”到网络图中。
#what I have so far:
episodes2 <- table(episodes$director, episodes$writer)
episodes2
这有意义吗?还是我在混淆东西?
感谢您的帮助!
尝试xtabs
> as.matrix(xtabs(rating ~ ., episodes))
writer
director name4 name5 name6 name7
name1 14.5 8.5 9.0 0.0
name2 0.0 0.0 9.0 0.0
name3 9.0 0.0 0.0 6.0
如果你想使用igraph
episodes %>%
graph_from_data_frame(directed = FALSE) %>%
set_vertex_attr(name = "type", value = names(V(.)) %in% episodes$director) %>%
simplify(edge.attr.comb = "sum") %>%
as_incidence_matrix(attr = "rating")
这给出了
name1 name2 name3
name4 14.5 0 9
name5 8.5 0 0
name6 9.0 9 0
name7 0.0 0 6