丢弃 R 中 igraph 上的二分边

Discard Bipartite Edges on igraph in R

我希望在 iGraph 上丢弃二分边,这样我就只能看到成员数大于 3 的边。我正在查看参加过 classesstudent 的数据集。我只想查看 classes 的图表,其中连接基于是否每个 class.

有超过 3 个学生
students | class
Jane     | Biology
Jack     | Biology
Mark     | Biology
Steve    | Biology
Jane     | Chemistry
Jack     | Chemistry
Mark     | Chemistry
Steve    | Chemistry
Lane     | Physics
Steve    | Physiology

我最后想要一张只有 BiologyChemistry 的图表,在它们之间画一条线,因为这两个 class 的学生会员人数 > 3

这是我目前的情况:

g.students
cl<- clusters(g.students)
g.students<- delete.vertices(g.students, names(cl$membership[ cl$membership > 3]))

不知何故,当我输入这个时,我得到了这个,这不可能是因为应该有节点和边:

IGRAPH c2cf5c3 UN-B 1 0 -- 

+ attr: name (v/c), type (v/l)

我不确定为什么会这样。有没有其他方法可以丢弃这些边?

这是一种方法:

A <- as_adj(g.students) # Extracting the adjacency matrix
B <- as.matrix(A[unique(df$class), unique(df$students)]) # Selecting its relevant part
C <- B %*% t(B) # Numbers of common students between classes
C <- ifelse(C > 3, 1, 0) * (1 - diag(nrow(C))) # Setting diagonal to zero, discarding 
                                               # edges, and setting remaining weights to 1
C <- C[colSums(C) > 0, colSums(C) > 0]         # Discarding vertices
g <- graph_from_adjacency_matrix(C)            # Obtaining a graph