R 基于二部网络边列表中的公共顶点创建新边列表
我有一个包含两组节点的边列表,如下所示:R 基于二部网络边列表中的公共顶点创建新边列表,r,graph-theory,edge-list,R,Graph Theory,Edge List,我有一个包含两组节点的边列表,如下所示: edgelist <- data.frame(from = sample(letters, 1000, replace = T), to = sample(1:50, 1000, replace = T)) edgelist首先,请注意,您可能希望将示例edgelist包装到一个unique()调用中,以避免重复的边 如果我理解的很好,你可以用一个简单的自连接来解决你的问题(尽管在中可能有一个更有效
edgelist <- data.frame(from = sample(letters, 1000, replace = T),
to = sample(1:50, 1000, replace = T))
edgelist首先,请注意,您可能希望将示例edgelist
包装到一个unique()
调用中,以避免重复的边
如果我理解的很好,你可以用一个简单的自连接来解决你的问题(尽管在中可能有一个更有效的开箱即用的方法)。例如,使用dplyr
:
library(dplyr)
letters_edges <- edgelist %>%
left_join(edgelist, by = "to") %>%
select(from.x, from.y) %>%
unique %>%
filter(from.x < from.y)
库(dplyr)
字母和边缘%
左联合(edgelist,by=“to”)%%>%
选择(从.x,从.y)%>%
唯一%>%
过滤器(从.x<从.y)