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 | } |