如何为 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