# co_heaviness: Co-heaviness for pairs of parent packages In jokergoo/pkgndep: Analyze Dependency Heaviness of R Packages

 co_heaviness R Documentation

## Co-heaviness for pairs of parent packages

### Description

Co-heaviness for pairs of parent packages

### Usage

```co_heaviness(x, rel = FALSE, a = 10, jaccard = FALSE)
```

### Arguments

 `x` An object returned by `pkgndep`. `rel` Whether to return the absolute measure or the relative measure. `a` A constant added for calculating the relative measure. `jaccard` Whether to return Jaccard coeffcient?

### Details

Denote a package as P and its two strong parent packages as A and B, i.e., parent packages in "Depends", "Imports" and "LinkingTo", the co-heaviness for A and B is calculated as follows.

Denote S_A as the set of reduced dependency packages when only moving A to "Suggests" of P, and denote S_B as the set of reduced dependency packages when only moving B to "Suggests" of P, denote S_AB as the set of reduced dependency packages when moving A and B together to "Suggests" of P, the co-heaviness of A, B on P is calculatd as `length(setdiff(S_AB, union(S_A, S_B)))`, which is the number of reduced package only caused by co-action of A and B.

Note the co-heaviness is only calculated for parent packages in "Depends", "Imports" and "LinkingTo".

When `jaccard` is set to `TRUE`, the function returns jaccard coeffcient. `setdiff(S_AB, union(S_A, S_B))` is actually the set of dependencies imported by and only by two parent packages A and B. Thus the jaccard coeffcient is calculated as `length(setdiff(S_AB, union(S_A, S_B)))/length(S_AB)`.

### Examples

```## Not run:
x = pkgndep("DESeq2")
hm = co_heaviness(x)
ComplexHeatmap::Heatmap(hm)
co_heaviness(x, jaccard = TRUE)

## End(Not run)
```

jokergoo/pkgndep documentation built on Nov. 24, 2022, 2:34 a.m.