View difference between Paste ID: cWWr9509 and zPHq9xWX
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
}