R: Pairwise Calculations

PairApply {DescTools} | R Documentation

## Pairwise Calculations

### Description

Implements a logic to run pairwise calculations on the columns of a data.frame or a matrix.

### Usage

    PairApply(x, FUN = NULL, ..., symmetric = FALSE)

### Arguments

`x` | a list, a data.frame or a matrix with columns to be processed pairwise.
`FUN` | a function to be calculated. It is assumed, that the first 2 arguments denominate x and y.
`...` | the dots are passed to FUN.
`symmetric` | logical. Does the function yield the same result for FUN(x, y) and FUN(y, x)? If `TRUE` just the lower triangular matrix is calculated and transposed. Default is FALSE.

### Details

This code is based on the logic of `cor()` and extended for asymmetric functions.

### Value

a matrix with the results of FUN.

### Author(s)

Andri Signorell <andri@signorell.net>

### See Also

`outer`, `CombPairs`, `pairwise.table`

### Examples

    PairApply(d.diamonds[,c("colour","clarity","cut","polish")], FUN = CramerV,
              symmetric=TRUE)

    # user defined functions are ok as well
    PairApply(d.diamonds[,c("clarity","cut","polish","symmetry")],
      FUN = function(x,y) wilcox.test(as.numeric(x), as.numeric(y))$p.value, symmetric=TRUE)

    # asymetric measure
    PairApply(d.diamonds[,c("colour", "clarity", "cut", "polish")],
      FUN = Lambda, direction = "row")

    # ... compare to:
    Lambda(x=d.diamonds$colour, y=d.diamonds$clarity, direction="row")
    Lambda(x=d.diamonds$colour, y=d.diamonds$clarity, direction="column")

    # the data.frame
    dfrm <- d.diamonds[, c("colour","clarity","cut","polish")]
    PairApply(dfrm, FUN = CramerV, symmetric=TRUE)

    # the same as matrix (columnwise)
    m <- as.matrix(dfrm)
    PairApply(m, FUN = CramerV, symmetric=TRUE)

    # ... and the list interface
    lst <- as.list(dfrm)
    PairApply(lst, FUN = CramerV, symmetric=TRUE)

[Package DescTools version 0.99.28 Index]