SHOW:
|
|
- or go back to the newest paste.
1 | # Set up the network objects | |
2 | friendship.aj <- matrix(c(NA, 0, 1, 1, 1, | |
3 | 0, NA, 0, 0, 0, | |
4 | 1, 0, NA, 0, 1, | |
5 | 1, 1, 0, NA, 1, | |
6 | 1, 0, 0, 0, NA), | |
7 | nrow = 5, byrow = TRUE) | |
8 | friendship.net.dir <- network(friendship.aj) | |
9 | friendship.net.undir <- network(friendship.aj, directed = FALSE) | |
10 | ||
11 | # Here's the function | |
12 | group_centrality <- function(net) { | |
13 | # Return a single centrality score for a whole network | |
14 | if(!is.network(net)) | |
15 | { | |
16 | stop("Object must be a network") | |
17 | } | |
18 | d_star <- (max(degree(net, cmode = 'outdegree'))) | |
19 | print(d_star) | |
20 | for(i in 1:network.size(net)) | |
21 | { | |
22 | if(is.directed(net)) | |
23 | { | |
24 | print("Network is directed") | |
25 | numerator <- d_star - degree(net, cmode = 'outdegree')[i] | |
26 | print(numerator) | |
27 | denominator <- (((network.size(net) - 1)^2)) | |
28 | print(denominator) | |
29 | centrality <- sum((d_star - degree(net, cmode = 'outdegree')[i])/ | |
30 | (((network.size(net) - 1)^2))) | |
31 | } else { | |
32 | print("Network is undirected") | |
33 | numerator <- d_star - degree(net, cmode = 'outdegree')[i] | |
34 | print(numerator) | |
35 | denominator <- (((network.size(net)) - 1)*(network.size(net) - 2)) | |
36 | print(denominator) | |
37 | centrality <- sum((d_star - degree(net, cmode = 'outdegree')[i])/ | |
38 | (((network.size(net)) - 1)*(network.size(net) - 2))) | |
39 | } | |
40 | ||
41 | } | |
42 | return(centrality) | |
43 | } |