# -------------------------------
# random sample
# -------------------------------
# prepare data for 4-category likert scale, 5 items
Q1 <- as.factor(sample(1:4, 500, replace = TRUE,
prob = c(0.2, 0.3, 0.1, 0.4)))
Q2 <- as.factor(sample(1:4, 500, replace = TRUE,
prob = c(0.5, 0.25, 0.15, 0.1)))
Q3 <- as.factor(sample(1:4, 500, replace = TRUE,
prob = c(0.25, 0.1, 0.4, 0.25)))
Q4 <- as.factor(sample(1:4, 500, replace = TRUE,
prob = c(0.1, 0.4, 0.4, 0.1)))
Q5 <- as.factor(sample(1:4, 500, replace = TRUE,
prob = c(0.35, 0.25, 0.15, 0.25)))
likert_4 <- data.frame(Q1, Q2, Q3, Q4, Q5)
# create labels
levels_4 <- c("Independent",
"Slightly dependent",
"Dependent",
"Severely dependent")
# plot stacked frequencies of 5 (ordered) item-scales
sjp.stackfrq(likert_4, legendLabels = levels_4)
# -------------------------------
# Data from the EUROFAMCARE sample dataset
# -------------------------------
library(sjmisc)
data(efc)
# recveive first item of COPE-index scale
start <- which(colnames(efc) == "c82cop1")
# recveive first item of COPE-index scale
end <- which(colnames(efc) == "c90cop9")
# retrieve variable and value labels
varlabs <- get_label(efc)
vallabs <- get_labels(efc)
# create value labels. We need just one variable of
# the COPE-index scale because they have all the same
# level / category / value labels
levels <- vallabs['c82cop1']
# create item labels
items <- varlabs[c(start:end)]
sjp.stackfrq(efc[, c(start:end)],
legendLabels = levels,
axisLabels.y = items,
jitterValueLabels = TRUE)
# -------------------------------
# auto-detection of labels
# -------------------------------
sjp.stackfrq(efc[, c(start:end)])