Computes mean, sd and se for each sub-group (indicated by grp
)
of dv
.
means_by_group(
x,
dv,
grp,
weights = NULL,
digits = 2,
out = c("txt", "viewer", "browser"),
encoding = "UTF-8",
file = NULL
)
grpmean(
x,
dv,
grp,
weights = NULL,
digits = 2,
out = c("txt", "viewer", "browser"),
encoding = "UTF-8",
file = NULL
)
x | A (grouped) data frame. |
---|---|
dv | Name of the dependent variable, for which the mean value, grouped
by |
grp | Factor with the cross-classifying variable, where |
weights | Name of variable in |
digits | Numeric, amount of digits after decimal point when rounding estimates and values. |
out | Character vector, indicating whether the results should be printed
to console ( |
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 |
For non-grouped data frames, means_by_group()
returns a data frame with
following columns: term
, mean
, N
, std.dev
,
std.error
and p.value
. For grouped data frames, returns
a list of such data frames.
This function performs a One-Way-Anova with dv
as dependent
and grp
as independent variable, by calling
lm(count ~ as.factor(grp))
. Then contrast
is called to get p-values for each sub-group. P-values indicate whether
each group-mean is significantly different from the total mean.
data(efc)
means_by_group(efc, c12hour, e42dep)
#>
#> # Grouped Means for average number of hours of care per week by elder's dependency
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------------------
#> independent | 9.91 | 66 | 8.01 | 0.99 | < .001
#> slightly dependent | 17.54 | 225 | 17.74 | 1.18 | < .001
#> moderately dependent | 34.52 | 306 | 41.54 | 2.37 | 0.983
#> severely dependent | 75.90 | 304 | 61.72 | 3.54 | < .001
#> Total | 42.44 | 901 | 50.82 | 1.69 |
#>
#> Anova: R2=0.245; adj.R2=0.242; F=96.908; p=0.000
data(iris)
means_by_group(iris, Sepal.Width, Species)
#>
#> # Grouped Means for Sepal.Width by Species
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------
#> setosa | 3.43 | 50 | 0.38 | 0.05 | < .001
#> versicolor | 2.77 | 50 | 0.31 | 0.04 | < .001
#> virginica | 2.97 | 50 | 0.32 | 0.05 | 0.035
#> Total | 3.06 | 150 | 0.44 | 0.04 |
#>
#> Anova: R2=0.401; adj.R2=0.393; F=49.160; p=0.000
# also works for grouped data frames
if (require("dplyr")) {
efc %>%
group_by(c172code) %>%
means_by_group(c12hour, e42dep)
}
#>
#> Grouped by:
#> carer's level of education: low level of education
#>
#> # Grouped Means for average number of hours of care per week by elder's dependency
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------------------
#> independent | 16.33 | 12 | 10.74 | 3.10 | 0.024
#> slightly dependent | 15.38 | 42 | 9.55 | 1.47 | < .001
#> moderately dependent | 42.05 | 61 | 46.53 | 5.96 | 0.696
#> severely dependent | 85.52 | 65 | 56.42 | 7.00 | < .001
#> Total | 49.81 | 180 | 52.24 | 3.89 |
#>
#> Anova: R2=0.307; adj.R2=0.295; F=25.955; p=0.000
#>
#>
#> Grouped by:
#> carer's level of education: intermediate level of education
#>
#> # Grouped Means for average number of hours of care per week by elder's dependency
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------------------
#> independent | 7.96 | 45 | 3.91 | 0.58 | < .001
#> slightly dependent | 17.12 | 135 | 16.52 | 1.42 | < .001
#> moderately dependent | 33.55 | 163 | 41.05 | 3.22 | 0.753
#> severely dependent | 79.71 | 163 | 63.13 | 4.94 | < .001
#> Total | 41.76 | 506 | 51.42 | 2.29 |
#>
#> Anova: R2=0.284; adj.R2=0.280; F=66.374; p=0.000
#>
#>
#> Grouped by:
#> carer's level of education: high level of education
#>
#> # Grouped Means for average number of hours of care per week by elder's dependency
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------------------
#> independent | 15.20 | 5 | 18.43 | 8.24 | 0.363
#> slightly dependent | 18.08 | 39 | 12.98 | 2.08 | 0.146
#> moderately dependent | 28.42 | 62 | 35.64 | 4.53 | 0.670
#> severely dependent | 63.38 | 50 | 62.69 | 8.87 | < .001
#> Total | 36.62 | 156 | 46.38 | 3.71 |
#>
#> Anova: R2=0.167; adj.R2=0.151; F=10.155; p=0.000
#>
#>
# weighting
efc$weight <- abs(rnorm(n = nrow(efc), mean = 1, sd = .5))
means_by_group(efc, c12hour, e42dep, weights = weight)
#>
#> # Grouped Means for average number of hours of care per week by elder's dependency
#>
#> Category | Mean | N | SD | SE | p
#> ----------------------------------------------------------
#> independent | 9.61 | 64 | 7.82 | 0.96 | < .001
#> slightly dependent | 16.31 | 219 | 14.23 | 0.95 | < .001
#> moderately dependent | 34.75 | 312 | 41.30 | 2.36 | 0.909
#> severely dependent | 77.15 | 313 | 62.04 | 3.56 | < .001
#> Total | 43.18 | 901 | 51.38 | 1.71 |
#>
#> Anova: R2=0.256; adj.R2=0.254; F=102.993; p=0.000