R: Collapse Levels of a Table

CollapseTable {DescTools} | R Documentation

## Collapse Levels of a Table

### Description

Collapse (or re-label) variables in a a contingency table or `ftable` object by re-assigning levels of the table variables.

### Usage

    CollapseTable(x, ...)

### Arguments

`x` | A `table` or `ftable` object
`...` | A collection of one or more assignments of factors of the table to a list of levels

### Details

Each of the `...` arguments must be of the form `variable = levels`, where `variable` is the name of one of the table dimensions, and `levels` is a character or numeric vector of length equal to the corresponding dimension of the table. Missing argument names are allowed and will be interpreted in the order of the dimensions of the table.

### Value

A `table` object (even if the input was an ftable), representing the original table with one or more of its factors collapsed or rearranged into other levels.

### Author(s)

Michael Friendly <friendly@yorku.ca>, Andri Signorell <andri@signorell.net>

### See Also

`Untable`

`margin.table` "collapses" a table in a different way, by summing over table dimensions.

### Examples

    # create some sample data in table form
    sex <- c("Male", "Female")
    age <- letters[1:6]
    education <- c("low", 'med', 'high')
    data <- expand.grid(sex=sex, age=age, education=education)
    counts <- rpois(36, 100)
    data <- cbind(data, counts)
    t1 <- xtabs(counts ~ sex + age + education, data=data)

    Desc(t1)

    ##                  age   a   b   c   d   e   f
    ## sex    education
    ## Male   low           119 101 109  85  99  93
    ##        med            94  98 103 108  84  84
    ##        high           81  88  96 110 100  92
    ## Female low           107 104  95  86 103  96
    ##        med           104  98  94  95 110 106
    ##        high           93  85  90 109  99  86

    # collapse age to 3 levels
    t2 <- CollapseTable(t1, age=c("A", "A", "B", "B", "C", "C"))
    Desc(t2)

    ##                  age   A   B   C
    ## sex    education
    ## Male   low           220 194 192
    ##        med           192 211 168
    ##        high          169 206 192
    ## Female low           211 181 199
    ##        med           202 189 216
    ##        high          178 199 185

    # collapse age to 3 levels and pool education: "low" and "med" to "low"
    t3 <- CollapseTable(t1, age=c("A", "A", "B", "B", "C", "C"),
        education=c("low", "low", "high"))
    Desc(t3)

    ##                  age   A   B   C
    ## sex    education
    ## Male   low           412 405 360
    ##        high          169 206 192
    ## Female low           413 370 415
    ##        high          178 199 185

    # change labels for levels of education to 1:3
    t4 <- CollapseTable(t1,  education=1:3)
    Desc(t4)

    ##                  age   a   b   c   d   e   f
    ## sex    education
    ## Male   1             119 101 109  85  99  93
    ##        2              94  98 103 108  84  84
    ##        3              81  88  96 110 100  92
    ## Female 1             107 104  95  86 103  96
    ##        2             104  98  94  95 110 106
    ##        3              93  85  90 109  99  86

[Package DescTools version 0.99.35 Index]