This function prints a basic descriptive statistic, including variable labels.

descr(x, ..., max.length = NULL, weights = NULL, out = c("txt",
  "viewer", "browser"))

Arguments

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 x is a data frame (and no vector) and only selected variables from x should be processed. You may also use functions like : or tidyselect's select_helpers. See 'Examples' or package-vignette.

max.length

Numeric, indicating the maximum length of variable labels in the output. If variable names are longer than max.length, they will be shortened to the last whole word within the first max.length chars.

weights

Bare name, or name as string, of a variable in x that indicates the vector of weights, which will be applied to weight all observations. Default is NULL, so no weights are used.

out

Character vector, indicating whether the results should be printed to console (out = "txt") or as HTML-table in the viewer-pane (out = "viewer") or browser (out = "browser").

Value

A data frame with basic descriptive statistics.

Note

data may also be a grouped data frame (see group_by) with up to two grouping variables. Descriptive tables are created for each subgroup then.

Examples

data(efc) descr(efc, e17age, c160age)
#> #> ## Basic descriptive statistics #> #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 891 1.87 79.12 8.09 0.27 79 79.05 38 (65-103) #> c160age numeric carer' age 901 0.77 53.46 13.35 0.44 54 53.68 71 (18-89) #> skew #> 0.06 #> -0.14
efc$weights <- abs(rnorm(nrow(efc), 1, .3)) descr(efc, c12hour, barthtot, weights = weights)
#> #> ## Basic descriptive statistics #> #> var type label n NA.prc mean #> c12hour numeric average number of hours of care per week 900 0.67 41.86 #> barthtot numeric Total score BARTHEL INDEX 880 2.84 64.93 #> sd se range #> 50.47 1.68 164 (4-168) #> 29.46 0.99 100 (0-100)
library(dplyr) efc %>% select(e42dep, e15relat, c172code) %>% descr()
#> #> ## Basic descriptive statistics #> #> var type label n NA.prc mean sd se md #> e42dep numeric elder's dependency 901 0.77 2.94 0.94 0.03 3 #> e15relat numeric relationship to elder 901 0.77 2.85 2.08 0.07 2 #> c172code numeric carer's level of education 842 7.27 1.97 0.63 0.02 2 #> trimmed range skew #> 3.02 3 (1-4) -0.42 #> 2.44 7 (1-8) 1.56 #> 1.96 2 (1-3) 0.02
# with grouped data frames efc %>% group_by(e16sex) %>% select(e16sex, e42dep, e15relat, c172code) %>% descr()
#> #> ## Basic descriptive statistics #> #> Grouped by: #> elder's gender: male #> var type label n NA.prc mean sd se md #> e42dep numeric elder's dependency 295 0.34 2.92 0.93 0.05 3 #> e15relat numeric relationship to elder 296 0.00 2.32 1.93 0.11 2 #> c172code numeric carer's level of education 279 5.74 1.87 0.65 0.04 2 #> trimmed range skew #> 3.00 3 (1-4) -0.44 #> 1.86 7 (1-8) 1.98 #> 1.84 2 (1-3) 0.14 #> #> Grouped by: #> elder's gender: female #> var type label n NA.prc mean sd se md #> e42dep numeric elder's dependency 605 0.00 2.95 0.94 0.04 3 #> e15relat numeric relationship to elder 604 0.17 3.11 2.11 0.09 2 #> c172code numeric carer's level of education 562 7.11 2.02 0.61 0.03 2 #> trimmed range skew #> 3.03 3 (1-4) -0.42 #> 2.74 7 (1-8) 1.45 #> 2.03 2 (1-3) -0.01
# you can select variables also inside 'descr()' efc %>% group_by(e16sex, c172code) %>% descr(e16sex, c172code, e17age, c160age)
#> #> ## Basic descriptive statistics #> #> Grouped by: #> elder's gender: male #> carer's level of education: low level of education #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 79 1.25 78.06 8.04 0.90 77 77.8 30 (65-95) #> c160age numeric carer' age 80 0.00 61.36 12.04 1.35 64 61.8 56 (31-87) #> skew #> 0.24 #> -0.38 #> #> Grouped by: #> elder's gender: male #> carer's level of education: intermediate level of education #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 155 0.64 75.19 6.61 0.53 75.0 74.82 30 (65-95) #> c160age numeric carer' age 156 0.00 53.50 15.66 1.25 54.5 53.86 61 (20-81) #> skew #> 0.45 #> -0.17 #> #> Grouped by: #> elder's gender: male #> carer's level of education: high level of education #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 43 0 77.19 8.97 1.37 78 76.66 31 (65-96) #> c160age numeric carer' age 43 0 53.35 11.15 1.70 54 53.60 46 (29-75) #> skew #> 0.34 #> -0.22 #> #> Grouped by: #> elder's gender: female #> carer's level of education: low level of education #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 98 1.01 79.77 7.78 0.79 80 79.89 33 (65-98) #> c160age numeric carer' age 99 0.00 56.59 11.75 1.18 57 56.62 51 (31-82) #> skew #> -0.08 #> -0.05 #> #> Grouped by: #> elder's gender: female #> carer's level of education: intermediate level of education #> var type label n NA.prc mean sd se md trimmed #> e17age numeric elder' age 343 2 80.24 8.06 0.43 81.0 80.38 #> c160age numeric carer' age 350 0 50.27 12.74 0.68 50.5 50.47 #> range skew #> 38 (65-103) -0.12 #> 71 (18-89) -0.09 #> #> Grouped by: #> elder's gender: female #> carer's level of education: high level of education #> var type label n NA.prc mean sd se md trimmed range #> e17age numeric elder' age 112 0.88 81.29 7.67 0.72 82.0 81.42 34 (65-99) #> c160age numeric carer' age 112 0.88 52.54 12.14 1.15 53.5 52.43 57 (28-85) #> skew #> -0.16 #> 0.13
# or even use select-helpers descr(efc, contains("cop"), max.length = 20)
#> #> ## Basic descriptive statistics #> #> var type label n NA.prc mean sd se md trimmed #> c82cop1 numeric do you feel you cope... 901 0.77 3.12 0.58 0.02 3 3.15 #> c83cop2 numeric do you find... 902 0.66 2.02 0.72 0.02 2 1.98 #> c84cop3 numeric does caregiving... 902 0.66 1.63 0.87 0.03 1 1.47 #> c85cop4 numeric does caregiving have... 898 1.10 1.77 0.87 0.03 2 1.63 #> c86cop5 numeric does caregiving... 902 0.66 1.39 0.67 0.02 1 1.26 #> c87cop6 numeric does caregiving... 900 0.88 1.29 0.64 0.02 1 1.13 #> c88cop7 numeric do you feel trapped... 900 0.88 1.92 0.91 0.03 2 1.80 #> c89cop8 numeric do you feel... 901 0.77 2.16 1.04 0.03 2 2.08 #> c90cop9 numeric do you feel... 888 2.20 2.93 0.96 0.03 3 3.02 #> range skew #> 3 (1-4) -0.12 #> 3 (1-4) 0.65 #> 3 (1-4) 1.31 #> 3 (1-4) 1.06 #> 3 (1-4) 1.77 #> 3 (1-4) 2.43 #> 3 (1-4) 0.83 #> 3 (1-4) 0.32 #> 3 (1-4) -0.45