igraph-help
[Top][All Lists]

## Re: [igraph] Group centrality

 From: Tamas Nepusz Subject: Re: [igraph] Group centrality Date: Mon, 17 Mar 2008 13:04:26 +0100

```Hi,

```
I think that the group degree centrality and the group closeness centrality is not too hard to implement using existing igraph functions. For group degree centrality, you simply select the vertices that have a neighbor vertex in your group, then subtract the members of your group from it. E.g., if your group consists of vertices 0, 1 and 5, then do the following:
```
group <- c(0,1,5)
group_degree <- setdiff(V(g)[nei(group)], group)

```
For group closeness centrality, you can use shortest.paths to calculate the distances of the individual vertices from members the group:
```
sps <- shortest.paths(g, group)

```
Now you'll have to decide how to define the distance of a vertex from a whole group. If you choose it to be the minimum distance, you'll have to apply the "min" function to columns of the matrix obtained. Similarly, you can use "max" or "mean". I choose "min":
```
min_dists <- apply(sps, 2, min)

I have to exclude zeros from min_dists:

```
Now, the group closeness centrality is the inverse of the mean of min_dists:
```
group_closeness <- 1 / mean(min_dists[min_dists > 0])

```
Due to my limited skills in R (I usually use igraph through its Python interface), I won't try implementing the group betweenness centrality this way, but I'm sure it can be done using regular igraph functions and a little bit of R programming.
```
Best,
--
Tamas

```