将加权边缘列表转换为 r 中的未加权边缘列表

turning a weighted edgelist into an unweighted in r

我有关于大学俱乐部每周社交时间可能发生并且确实发生的每一次互动的数据

id1     id2   timestalked   date  
 1       2       1         1/1/2010
 1       3       0         1/1/2010
...
100     2        4         1/8/2010
...

我想首先将其加载为整个时间段的有向图以进行可视化。对于我做的加权矩阵。

library(igraph);
el <- read.csv("el.csv", header = TRUE);
G <- graph.data.frame(el,directed=TRUE);
A <- as_adjacency_matrix(G,type="both",names=TRUE,sparse=FALSE,attr="timestalked");

我认为删除 attr="timestalked" 会将权重 > 0 变为 1,但这似乎不起作用

library(igraph);
el <- read.csv("el.csv", header = TRUE);
G_unweight <- graph.data.frame(el,directed=TRUE);
A_unweight <- as_adjacency_matrix(G_unweight,type="both",names=TRUE,sparse=FALSE)

as_adjacency_matrix() 不提供任何参数来控制权重。请注意,它仅提供图中节点之间的边数。

要将加权边缘列表变成未加权边缘列表,试试这个

A <- as_adjacency_matrix(G, type = "both", names = TRUE, sparse = FALSE)
A[A > 1] <- 1

请注意,您还可以使用 graph_from_adjacency_matrix() 函数通过指定 weighted = NULL.

从邻接矩阵创建未加权的 igraph