Function to aggregate positions defined via indirect relations to construct centrality scores.

aggregate_positions(tau_x, type = "sum")

Arguments

tau_x

Numeric matrix containing indirect relations calculated with indirect_relations.

type

String indicating the type of aggregation to be used. See Details for options.

Value

Scores for the index defined by the indirect relation tau_x and the used aggregation type.

Details

The predefined functions are mainly wrappers around base R functions. type='sum', for instance, is equivalent to rowSums(). A non-base functions is type='invsum' which calculates the inverse of type='sum'. type='self' is mostly useful for walk based relations, e.g. to count closed walks. Other self explanatory options are type='mean', type='min', type='max' and type='prod'.

See also

Examples

library(igraph)
#> #> Attaching package: ‘igraph’
#> The following objects are masked from ‘package:stats’: #> #> decompose, spectrum
#> The following object is masked from ‘package:base’: #> #> union
library(magrittr) g <- graph.empty(n=11,directed = FALSE) g <- add_edges(g,c(1,11,2,4,3,5,3,11,4,8,5,9,5,11,6,7,6,8, 6,10,6,11,7,9,7,10,7,11,8,9,8,10,9,10)) #degree g %>% indirect_relations(type='adjacency') %>% aggregate_positions(type='sum')
#> [1] 1 1 2 2 3 4 4 4 4 4 5
#closeness centrality g %>% indirect_relations(type='dist_sp') %>% aggregate_positions(type='invsum')
#> [1] 0.03703704 0.02941176 0.04000000 0.04000000 0.05000000 0.05882353 #> [7] 0.05263158 0.05555556 0.05555556 0.05263158 0.05555556
#betweenness centrality g %>% indirect_relations(type='depend_sp') %>% aggregate_positions(type='sum')
#> [1] 0.000000 0.000000 0.000000 18.000000 7.666667 19.666667 5.333333 #> [8] 32.666667 14.666667 2.666667 29.333333
#eigenvector centrality g %>% indirect_relations(type='walks',FUN=walks_limit_prop) %>% aggregate_positions(type='sum')
#> [1] 0.2751607 0.0786437 0.4610603 0.2941027 0.6952060 1.1990379 1.2177246 #> [8] 1.0212076 1.1097768 1.2160775 1.0290143
#subgraph centrality g %>% indirect_relations(type='walks',FUN=walks_exp) %>% aggregate_positions(type='self')
#> [1] 1.825100 1.595400 3.148571 2.423091 4.387127 7.807257 7.939410 6.672783 #> [9] 7.032672 8.242124 7.389559