
Collapse Levels of a Table
collapse.table.Rd
Collapse (or re-label) variables in a
a contingency table, array or ftable
object by re-assigning levels of the table variables.
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.
Value
A xtabs
and table
object, representing the original table with
one or more of its factors collapsed or rearranged into other levels.
See also
expand.dft
expands a frequency data frame to case form.
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)
structable(t1)
#> age a b c d e f
#> sex education
#> Male low 98 115 105 100 110 98
#> med 103 102 101 109 111 100
#> high 104 92 93 87 104 110
#> Female low 96 84 95 108 93 105
#> med 99 75 106 81 120 83
#> high 101 98 107 112 103 103
## 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 <- collapse.table(t1, age=c("A", "A", "B", "B", "C", "C"))
structable(t2)
#> age A B C
#> sex education
#> Male low 213 205 208
#> med 205 210 211
#> high 196 180 214
#> Female low 180 203 198
#> med 174 187 203
#> high 199 219 206
## 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 <- collapse.table(t1, age=c("A", "A", "B", "B", "C", "C"),
education=c("low", "low", "high"))
structable(t3)
#> age A B C
#> sex education
#> Male low 418 415 419
#> high 196 180 214
#> Female low 354 390 401
#> high 199 219 206
## 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 <- collapse.table(t1, education=1:3)
structable(t4)
#> age a b c d e f
#> sex education
#> Male 1 98 115 105 100 110 98
#> 2 103 102 101 109 111 100
#> 3 104 92 93 87 104 110
#> Female 1 96 84 95 108 93 105
#> 2 99 75 106 81 120 83
#> 3 101 98 107 112 103 103
structable(t4)
#> age a b c d e f
#> sex education
#> Male 1 98 115 105 100 110 98
#> 2 103 102 101 109 111 100
#> 3 104 92 93 87 104 110
#> Female 1 96 84 95 108 93 105
#> 2 99 75 106 81 120 83
#> 3 101 98 107 112 103 103
## 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