Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 4,
fig.align = "center"
)
## ----library_load-------------------------------------------------------------
library(stenR)
## ----SLCS_structure-----------------------------------------------------------
str(SLCS)
## ----SLCS_ScaleSpecs----------------------------------------------------------
SL_spec <- ScaleSpec(
name = "SelfLiking", min = 1, max = 5,
item_names = c("SLCS_1", "SLCS_3", "SLCS_5", "SLCS_6", "SLCS_7",
"SLCS_9", "SLCS_11", "SLCS_15"),
reverse = c("SLCS_1", "SLCS_6", "SLCS_7", "SLCS_15")
)
SC_spec <- ScaleSpec(
name = "SelfCompetence", min = 1, max = 5,
item_names = c("SLCS_2", "SLCS_4", "SLCS_8", "SLCS_10", "SLCS_12",
"SLCS_13", "SLCS_14", "SLCS_16"),
reverse = c("SLCS_8", "SLCS_10", "SLCS_13")
)
## ----SLCS_CombScaleSpec-------------------------------------------------------
GS_spec <- CombScaleSpec(
name = "GeneralScore",
SL_spec, SC_spec
)
# subscales can be also reversed
GS_with_rev <- CombScaleSpec(
name = "rev_example",
SL_spec, SC_spec,
reverse = "SelfCompetence"
)
## ----SLCS_summarize-----------------------------------------------------------
summed_SCLS <- sum_items_to_scale(
SLCS,
SL_spec,
SC_spec,
GS_spec,
GS_with_rev
)
str(summed_SCLS)
## ----HEXACO_str---------------------------------------------------------------
str(HEXACO_60)
## ----ungrouped_freqtable------------------------------------------------------
HEX_C_ft <- FrequencyTable(HEXACO_60$HEX_C)
HEX_E_ft <- FrequencyTable(HEXACO_60$HEX_E)
## ----plot_freqtable-----------------------------------------------------------
plot(HEX_E_ft)
## ----ungrouped_scoretables----------------------------------------------------
HEX_C_st <- ScoreTable(
ft = HEX_C_ft,
scale = STEN
)
HEX_E_st <-ScoreTable(
ft = HEX_E_ft,
scale = STEN
)
## ----ungrouped_normalization_base---------------------------------------------
HEX_C_norm <- normalize_score(
HEXACO_60$HEX_C,
table = HEX_C_st,
what = "sten"
)
HEX_E_norm <- normalize_score(
HEXACO_60$HEX_E,
table = HEX_E_st,
what = "sten"
)
summary(HEX_C_norm)
summary(HEX_E_norm)
## ----ungrouped_normalization_df-----------------------------------------------
HEX_CE_norm <- normalize_scores_df(
data = HEXACO_60,
vars = c("HEX_C", "HEX_E"),
HEX_C_st,
HEX_E_st,
what = "sten",
# by default no other variables will be retained
retain = FALSE
)
summary(HEX_CE_norm)
str(HEX_CE_norm)
## ----ScoringTable_export, echo=FALSE------------------------------------------
C_ScoringTable <- tempfile(fileext = ".csv")
E_ScoringTable <- tempfile(fileext = ".csv")
export_ScoringTable(
to_ScoringTable(HEX_C_st,
min_raw = 10,
max_raw = 50),
C_ScoringTable,
"csv",
)
export_ScoringTable(
to_ScoringTable(HEX_E_st,
min_raw = 10,
max_raw = 50),
E_ScoringTable,
"csv"
)
## ----Scoring_ungrouped_import-------------------------------------------------
HEX_C_Scoring <- import_ScoringTable(
source = C_ScoringTable,
method = "csv"
)
HEX_E_Scoring <- import_ScoringTable(
source = E_ScoringTable,
method = "csv"
)
summary(HEX_C_Scoring)
summary(HEX_E_Scoring)
## ----normalize_Scoring_ungrouped----------------------------------------------
HEX_CE_norm <- normalize_scores_scoring(
data = HEXACO_60,
vars = c("HEX_C", "HEX_E"),
HEX_C_Scoring,
HEX_E_Scoring
)
summary(HEX_CE_norm)
str(HEX_CE_norm)
## ----GroupConditions----------------------------------------------------------
sex_grouping <- GroupConditions(
conditions_category = "Sex",
"M" ~ sex == "M",
"F" ~ sex == "F"
)
age_grouping <- GroupConditions(
conditions_category = "Age",
"to 30" ~ age < 30,
"above 30" ~ age >= 31
)
sex_grouping
age_grouping
## ----IPIP_NEO_str-------------------------------------------------------------
str(IPIP_NEO_300)
## ----ungrouped_tables, fig.align = "center"-----------------------------------
N_gft <- GroupedFrequencyTable(
data = IPIP_NEO_300,
conditions = list(age_grouping, sex_grouping),
var = "N",
# By default, norms are are also computed for '.all' groups. These are
# used if by any reason observation can't be assigned to any group
# in corresponding condition category
.all = TRUE
)
N_gst <- GroupedScoreTable(N_gft, scale = STEN)
plot(N_gst)
## ----grouped_table_normalize--------------------------------------------------
NEO_norm <- normalize_scores_grouped(
data = IPIP_NEO_300,
vars = "N",
N_gst,
what = "sten",
group_col = "Group"
)
str(NEO_norm)
table(NEO_norm$Group)
## ----grouped_scoring_export---------------------------------------------------
ST_csv <- tempfile(fileext = ".csv")
cond_csv <- tempfile(fileext = ".csv")
N_ST <- to_ScoringTable(
table = N_gst,
min_raw = 60,
max_raw = 300
)
summary(N_ST)
export_ScoringTable(
table = N_ST,
out_file = ST_csv,
method = "csv",
# you can also export GroupConditions to seperate csv file
cond_file = cond_csv
)
## ----import_grouped_scoring---------------------------------------------------
imported_ST <- import_ScoringTable(
source = ST_csv,
method = "csv",
conditions = list(age_grouping, sex_grouping)
)
summary(imported_ST)
## ----normalize_imported_scoring-----------------------------------------------
NEO_norm <- normalize_scores_scoring(
data = IPIP_NEO_300,
vars = "N",
imported_ST,
group_col = "Group"
)
str(NEO_norm)
table(NEO_norm$Group)
## ----StandardScale------------------------------------------------------------
new_scale <- StandardScale("my_scale", 10, 3, 0, 20)
# let's see if everything is correct
new_scale
# how does its distribution looks like?
plot(new_scale)
## ----init_CompScoreTable------------------------------------------------------
# attach during initialization
HexCST <- CompScoreTable$new(
tables = list(HEX_E = HEX_E_ft),
scales = STEN
)
# attach later
altCST <- CompScoreTable$new()
altCST$attach_FrequencyTable(HEX_E_ft, "HEX_E")
altCST$attach_StandardScale(STEN)
# there are no visible differences in objects structure
summary(HexCST)
summary(altCST)
## ----expand_CST---------------------------------------------------------------
# add new FrequencyTable
HexCST$attach_FrequencyTable(FrequencyTable(HEXACO_60$HEX_C), "HEX_C")
summary(HexCST)
# add new StandardScale
HexCST$attach_StandardScale(STANINE)
summary(HexCST)
## ----CST_standardize----------------------------------------------------------
# standardize the Honesty-Humility and Consciousness
HexCST$standardize(
data = head(HEXACO_60),
what = "sten",
vars = c("HEX_E", "HEX_C")
)
# you can also do this easily with pipes!
HEXACO_60[1:5, c("HEX_E", "HEX_C")] |>
# no need to specify 'vars', as the correct columns are already selected
HexCST$standardize("sten")
## ----CST_append---------------------------------------------------------------
# check the current state of the object
summary(HexCST)
# now, standardize and recalculate!
HEXACO_60[1:5, c("HEX_H", "HEX_C")] |>
HexCST$standardize("sten", calc = TRUE)
# check the new state
summary(HexCST)
## ----CST_export---------------------------------------------------------------
# export as ScoreTables
st_list <- HexCST$export_ScoreTable()
summary(st_list)
# export as FrequencyTables
ft_list <- HexCST$export_ScoreTable(strip = T)
summary(ft_list)
## ----SimTables----------------------------------------------------------------
sim_ft <- SimFrequencyTable(min = 10, max = 50, M = 31.04,
SD = 6.7, skew = -0.3, kurt = 2.89, seed = 2678)
class(sim_ft)
plot(sim_ft)
## ----check_SimComp, error=TRUE------------------------------------------------
SimCST <- CompScoreTable$new(
tables = list("simmed" = sim_ft),
scales = STEN
)
SimCST$standardize(
data = data.frame(simmed = round(runif(10, 10, 50), 0)),
what = "sten",
calc = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.