| frq {sjmisc} | R Documentation |
This function returns a frequency table of labelled vectors, as data frame.
frq(x, ..., sort.frq = c("none", "asc", "desc"), weight.by = NULL,
auto.grp = NULL, show.strings = TRUE, grp.strings = NULL,
out = c("txt", "viewer", "browser"))
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 |
weight.by |
Vector of weights that will be applied to weight all observations.
Must be a vector of same length as the input vector. Default is
|
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 |
grp.strings |
Numeric, if not |
out |
Character vector, indicating whether the results should be printed
to console ( |
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.
flat_table for labelled (proportional) tables.
library(haven)
# create labelled integer
x <- labelled(
c(1, 2, 1, 3, 4, 1),
c(Male = 1, Female = 2, Refused = 3, "N/A" = 4)
)
frq(x)
x <- labelled(
c(1:3, tagged_na("a", "c", "z"), 4:1, 2:3),
c("Agreement" = 1, "Disagreement" = 4, "First" = tagged_na("c"),
"Refused" = tagged_na("a"), "Not home" = tagged_na("z"))
)
frq(x)
# in a pipe
data(efc)
library(dplyr)
efc %>%
select(e42dep, e15relat, c172code) %>%
frq()
# or:
# frq(efc, e42dep, e15relat, c172code)
# with grouped data frames, in a pipe
efc %>%
group_by(e16sex, c172code) %>%
frq(e16sex, c172code, e42dep)
# 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)
# group variables with large range
frq(efc, c160age)
frq(efc, c160age, auto.grp = 5)
# group string values
## Not run:
dummy <- efc %>% dplyr::select(3)
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)
## End(Not run)