Skip to contents

Merge flat disjoint clusterings whose pairwise ECS score is above a given threshold. The merging is done using a complete linkage approach.

Usage

merge_partitions(
  partition_list,
  ecs_thresh = 1,
  order_logic = c("freq", "avg_agreement", "none"),
  return_ecs_matrix = FALSE,
  check_ties = TRUE
)

Arguments

partition_list

A list of flat disjoint membership vectors.

ecs_thresh

A numeric: the ecs threshold.

order_logic

Variable indicating the method of ordering the partitions. It can take these three values:

  • "freq": order the partitions based on their frequencies. The partition with the highest frequency will be the first on the list (default).

  • "avg_agreement": order the partitions based on their average agreement index. The average agreement index of a partition is calculated as the mean of the ECS scores between that partition and the other partitions from the list. The partition with the highest agreement will be the first on the list.

  • "none": do not perform any ordering (not recommended). If selected, the average agreement scores will not be calculated.

return_ecs_matrix

A logical: if TRUE, the function will add the ECS matrix to the return list. Defaults to FALSE.

check_ties

A logical value that indicates whether to check for ties in the highest frequency partitions or not. If TRUE, the function will put at the first position the partition that has the highest similarity with the other partitions. Defaults to FALSE.

Value

a list of the merged partitions, together with their associated ECC score. If return_ecs_matrix is set to TRUE, the function will also return the ECS matrix.

Examples

initial_list <- list(c(1, 1, 2), c(2, 2, 2), c("B", "B", "A"))
merge_partitions(initial_list, 1)
#> $partitions
#> $partitions[[1]]
#> $partitions[[1]]$mb
#> [1] 1 1 2
#> 
#> $partitions[[1]]$freq
#> [1] 2
#> 
#> $partitions[[1]]$avg_agreement
#> [1] 0.2777778
#> 
#> 
#> $partitions[[2]]
#> $partitions[[2]]$mb
#> [1] 2 2 2
#> 
#> $partitions[[2]]$freq
#> [1] 1
#> 
#> $partitions[[2]]$avg_agreement
#> [1] 0.2777778
#> 
#> 
#> 
#> $ecc
#> [1] 0.7777778 0.7777778 0.5555556
#>