frq | R Documentation |
This function returns a frequency table of labelled vectors, as data frame.
frq(
x,
...,
sort.frq = c("none", "asc", "desc"),
weights = NULL,
auto.grp = NULL,
show.strings = TRUE,
show.na = TRUE,
grp.strings = NULL,
min.frq = 0,
out = c("txt", "viewer", "browser"),
title = NULL,
encoding = "UTF-8",
file = NULL
)
x |
A vector or a data frame. May also be a grouped data frame (see 'Note' and 'Examples'). |
... |
Optional, unquoted names of variables that should be selected for
further processing. Required, if |
sort.frq |
Determines whether categories should be sorted
according to their frequencies or not. Default is |
weights |
Bare name, or name as string, of a variable in |
auto.grp |
Numeric value, indicating the minimum amount of unique
values in a variable, at which automatic grouping into smaller units
is done (see |
show.strings |
Logical, if |
show.na |
Logical, or |
grp.strings |
Numeric, if not |
min.frq |
Numeric, indicating the minimum frequency for which a
value will be shown in the output (except for the missing values, prevailing
|
out |
Character vector, indicating whether the results should be printed
to console ( |
title |
String, will be used as alternative title to the variable
label. If |
encoding |
Character vector, indicating the charset encoding used
for variable and value labels. Default is |
file |
Destination file, if the output should be saved as file.
Only used when |
The ...-argument not only accepts variable names or expressions from select-helpers. You can also use logical conditions, math operations, or combining variables to produce "crosstables". See 'Examples' for more details.
A list of data frames with values, value labels, frequencies, raw, valid and
cumulative percentages of x
.
x
may also be a grouped data frame (see group_by
)
with up to two grouping variables. Frequency tables are created for each
subgroup then.
The print()
-method adds a table header with information on the
variable label, variable type, total and valid N, and mean and
standard deviations. Mean and SD are always printed, even for
categorical variables (factors) or character vectors. In this case,
values are coerced into numeric vector to calculate the summary
statistics.
To print tables in markdown or HTML format, use print_md()
or
print_html()
.
flat_table
for labelled (proportional) tables.
# simple vector
data(efc)
frq(efc$e42dep)
# with grouped data frames, in a pipe
library(dplyr)
efc %>%
group_by(e16sex, c172code) %>%
frq(e42dep)
# show only categories with a minimal amount of frequencies
frq(mtcars$gear)
frq(mtcars$gear, min.frq = 10)
frq(mtcars$gear, min.frq = 15)
# with select-helpers: all variables from the COPE-Index
# (which all have a "cop" in their name)
frq(efc, contains("cop"))
# all variables from column "c161sex" to column "c175empl"
frq(efc, c161sex:c175empl)
# for non-labelled data, variable name is printed,
# and "label" column is removed from output
data(iris)
frq(iris, Species)
# also works on grouped data frames
efc %>%
group_by(c172code) %>%
frq(is.na(nur_pst))
# group variables with large range and with weights
efc$weights <- abs(rnorm(n = nrow(efc), mean = 1, sd = .5))
frq(efc, c160age, auto.grp = 5, weights = weights)
# different weight options
frq(efc, c172code, weights = weights)
frq(efc, c172code, weights = "weights")
frq(efc, c172code, weights = efc$weights)
frq(efc$c172code, weights = efc$weights)
# group string values
dummy <- efc[1:50, 3, drop = FALSE]
dummy$words <- sample(
c("Hello", "Helo", "Hole", "Apple", "Ape",
"New", "Old", "System", "Systemic"),
size = nrow(dummy),
replace = TRUE
)
frq(dummy)
frq(dummy, grp.strings = 2)
#### other expressions than variables
# logical conditions
frq(mtcars, cyl ==6)
frq(efc, is.na(nur_pst), contains("cop"))
iris %>%
frq(starts_with("Petal"), Sepal.Length > 5)
# computation of variables "on the fly"
frq(mtcars, (gear + carb) / cyl)
# crosstables
set.seed(123)
d <- data.frame(
var_x = sample(letters[1:3], size = 30, replace = TRUE),
var_y = sample(1:2, size = 30, replace = TRUE),
var_z = sample(LETTERS[8:10], size = 30, replace = TRUE)
)
table(d$var_x, d$var_z)
frq(d, paste0(var_x, var_z))
frq(d, paste0(var_x, var_y, var_z))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.