2017-07-14 11 views
1

Iは、次のデータセットと、次のスクリプトを持っている:特定のグループのノード間のエッジ数を計算する方法は?

library(GGally) 
library(ggnet) 
library(network) 
library(sna) 
library(ggplot2) 

# edgelist 
e <- data.frame(sender = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5), 
       receiver = c(2, 3, 4, 5, 1, 3, 1, 1, 2, 2, 4, 3, 2, 4)) 

# information about the nodes (vertices) 
v <- data.frame(actors = c(1, 2, 3, 4, 5), 
       groups = c("A", "A", "B", "C", "D")) 

net <- network(e, directed = TRUE) 

x = data.frame(actors = network.vertex.names(net)) 
x = merge(x, v, by = "actors", sort = FALSE)$groups 

net %v% "group" = as.character(x) 

y = RColorBrewer::brewer.pal(9, "Set1")[ c(3, 1, 9, 6, 8) ] 
names(y) = levels(x) 

ggnet2(net, color = "group", palette = y, alpha = 0.75, size = 4, edge.alpha = 0.5, arrow.size = 8, arrow.gap = 0.01) 

は、同じグループにノードのグループ(A、B、C、D)からエッジの数を計算するための簡単かつ迅速な方法はあります(すなわち、AA、AB、AC、AD、BAなどから)ノードのグループに追加する必要がありますか?

network-Packageにはnetwork.edgecountがあります。しかし、どうすればそれを私の質問に適用できますか?

答えて

0

mixingmatrixの機能はnetworkです。それは、グループ内およびグループ間の結び付きの数を表示し、同性愛者と偶然の混合になります。

> mixingmatrix(net, "group") 
     To 
From A B C D Total 
    A  3 2 1 1  7 
    B  3 0 1 0  4 
    C  1 1 0 0  2 
    D  0 0 1 0  1 
    Total 7 3 3 1 14 
関連する問題