Generate frequency tables for one or more variables in a data frame or a survey design.

freqtable(.data, ...)

# Default S3 method
freqtable(.data, ..., na.rm = FALSE, weights = NULL)

# S3 method for class 'survey.design'
freqtable(.data, ..., na.rm = FALSE, weights = TRUE)

Arguments

.data

a data frame or `survey.design` object

...

one or more expressions accepted by select selecting at least one variable

na.rm

Whether to remove missing values in the variables.

weights

If `.data` is a data frame, an optional expression selecting a weighting variable. If `.data` is a survey design, either `TRUE` (the default) to to use survey weights, or `FALSE` or `NULL` to return unweighted frequencies.

Value

The result is an array of class `table`.

See also

Examples

data(hdv2003)
freqtable(hdv2003, nivetud, sport)
#>                                                                  sport
#> nivetud                                                           Non Oui
#>   N'a jamais fait d'etudes                                         38   1
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires  78   8
#>   Derniere annee d'etudes primaires                               300  41
#>   1er cycle                                                       161  43
#>   2eme cycle                                                      109  74
#>   Enseignement technique ou professionnel court                   307 156
#>   Enseignement technique ou professionnel long                     71  60
#>   Enseignement superieur y compris technique superieur            186 255
#>   <NA>                                                             27  85
freqtable(hdv2003, nivetud, sport, sexe)
#> , , sexe = Homme
#> 
#>                                                                  sport
#> nivetud                                                           Non Oui
#>   N'a jamais fait d'etudes                                         16   0
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires  31   6
#>   Derniere annee d'etudes primaires                               113  18
#>   1er cycle                                                        59  23
#>   2eme cycle                                                       33  34
#>   Enseignement technique ou professionnel court                   164  83
#>   Enseignement technique ou professionnel long                     31  36
#>   Enseignement superieur y compris technique superieur             78 120
#>   <NA>                                                              5  49
#> 
#> , , sexe = Femme
#> 
#>                                                                  sport
#> nivetud                                                           Non Oui
#>   N'a jamais fait d'etudes                                         22   1
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires  47   2
#>   Derniere annee d'etudes primaires                               187  23
#>   1er cycle                                                       102  20
#>   2eme cycle                                                       76  40
#>   Enseignement technique ou professionnel court                   143  73
#>   Enseignement technique ou professionnel long                     40  24
#>   Enseignement superieur y compris technique superieur            108 135
#>   <NA>                                                             22  36
#> 
freqtable(hdv2003, nivetud, sport, weights=poids)
#>                                                                  sport
#> nivetud                                                                   Non
#>   N'a jamais fait d'etudes                                         105451.364
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires  414954.912
#>   Derniere annee d'etudes primaires                               1458213.314
#>   1er cycle                                                        870442.080
#>   2eme cycle                                                       557682.704
#>   Enseignement technique ou professionnel court                   1669450.914
#>   Enseignement technique ou professionnel long                     381383.425
#>   Enseignement superieur y compris technique superieur            1071009.109
#>   <NA>                                                             186172.515
#>                                                                  sport
#> nivetud                                                                   Oui
#>   N'a jamais fait d'etudes                                           5160.844
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires   45453.405
#>   Derniere annee d'etudes primaires                                183863.690
#>   1er cycle                                                        256810.118
#>   2eme cycle                                                       414211.036
#>   Enseignement technique ou professionnel court                    925555.080
#>   Enseignement technique ou professionnel long                     389509.000
#>   Enseignement superieur y compris technique superieur            1504802.345
#>   <NA>                                                             631100.483
freqtable(hdv2003, starts_with("trav"))
#>                               trav.satisf
#> trav.imp                       Satisfaction Insatisfaction Equilibre <NA>
#>   Le plus important                      13              4        12    0
#>   Aussi important que le reste          141             25        93    0
#>   Moins important que le reste          315             65       328    0
#>   Peu important                          11             23        18    0
#>   <NA>                                    0              0         0  952

# Using survey design objects
library(survey)
#> Loading required package: grid
#> Loading required package: Matrix
#> Loading required package: survival
#> 
#> Attaching package: ‘survey’
#> The following object is masked from ‘package:graphics’:
#> 
#>     dotchart
hdv2003_wtd <- svydesign(ids=~1, weights=~poids, data=hdv2003)
freqtable(hdv2003_wtd, nivetud, sport)
#>                                                                  sport
#> nivetud                                                                   Non
#>   N'a jamais fait d'etudes                                         105451.364
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires  414954.912
#>   Derniere annee d'etudes primaires                               1458213.314
#>   1er cycle                                                        870442.080
#>   2eme cycle                                                       557682.704
#>   Enseignement technique ou professionnel court                   1669450.914
#>   Enseignement technique ou professionnel long                     381383.425
#>   Enseignement superieur y compris technique superieur            1071009.109
#>   <NA>                                                             186172.515
#>                                                                  sport
#> nivetud                                                                   Oui
#>   N'a jamais fait d'etudes                                           5160.844
#>   A arrete ses etudes, avant la derniere annee d'etudes primaires   45453.405
#>   Derniere annee d'etudes primaires                                183863.690
#>   1er cycle                                                        256810.118
#>   2eme cycle                                                       414211.036
#>   Enseignement technique ou professionnel court                    925555.080
#>   Enseignement technique ou professionnel long                     389509.000
#>   Enseignement superieur y compris technique superieur            1504802.345
#>   <NA>                                                             631100.483

# Compute percentages based on frequencies
hdv2003 |> freqtable(sport) |> freq()
#>        n    % val%
#> Non 1277 63.8 63.8
#> Oui  723 36.1 36.1
hdv2003 |> freqtable(sport, sexe) |> prop()
#>        sexe
#> sport   Homme Femme Total
#>   Non    26.5  37.4  63.9
#>   Oui    18.4  17.7  36.1
#>   Total  45.0  55.0 100.0
hdv2003 |> freqtable(sport, sexe) |> cprop()
#>        sexe
#> sport   Homme Femme All  
#>   Non    59.0  67.8  63.8
#>   Oui    41.0  32.2  36.1
#>   Total 100.0 100.0 100.0