Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

umx_score_scale

Score a psychometric scale by summing normal and reversed items.


Description

Use this function to generate scores as the appropriate sum of responses to the normal and reversed items in a scale.

Items must be named on the pattern baseN, where base is the string common to all item (column) names and N is the item number in the scale.

pos and rev are vectors of the item numbers for the normal and reverse-scored item numbers.

To reverse items, the function uses max and min as the lowest and highest possible response scores to compute how to reverse items.

note: min defaults to 1.

Usage

umx_score_scale(
  base = NULL,
  pos = NULL,
  rev = NULL,
  min = 1,
  max = NULL,
  data = NULL,
  score = c("total", "mean", "max", "factor"),
  name = NULL,
  na.rm = FALSE,
  minManifests = NA,
  alpha = FALSE,
  mapStrings = NULL
)

Arguments

base

String common to all item names.

pos

The positive-scored item numbers.

rev

The reverse-scored item numbers.

min

Min possible score (default = 1). Not implemented for values other than 1 so far...

max

Max possible score for an item (to compute how to reverse items).

data

The data frame

score

Whether to compute the score total, mean, max, or factor (default = "total")

name

= name of the scale to be returned. Defaults to "base_score"

na.rm

Whether to delete NAs when computing scores (Default = TRUE) Note: Choice affects mean!

minManifests

If score = factor, how many missing items to tolerate for an individual?

alpha

print Cronbach's alpha? (TRUE)

mapStrings

For input like True/False can map to 0,1 NULL

Details

In the presence of NAs, score= "mean" and score = "totals" both return NA unless na.rm = TRUE. score = "max", ignores NAs no matter what.

Value

  • scores

See Also

Examples

library(psych)
data(bfi)

# ==============================
# = Score Agreeableness totals =
# ==============================

# Handscore subject 1
# A1(Reversed) + A2 + A3 + A4 + A5 
#      (6+1)-2 + 4  + 3  + 4  + 4  = 20

tmp = umx_score_scale("A", pos = 2:5, rev = 1, max = 6, data= bfi, name = "A")
tmp[1, namez(tmp, "A",ignore.case=FALSE)]
#  A1 A2 A3 A4 A5  A
#  2  4  3  4  4  20

# =================================================================================
# = Note: (as of a fix in 2020-05-08) items not reversed in the returned data set =
# =================================================================================
tmp = umx_score_scale("A", pos = 1, rev = 2:5, max = 6, data= bfi, name = "A")
tmp[1, namez(tmp, "A",ignore.case=FALSE)]
#   A1 A2 A3 A4 A5   A
#   2   4  3  4  4 = 15

tmp = umx_score_scale("A", pos = 2:5, rev = 1, max = 6, data= bfi, name = "A", score="mean")
tmp$A[1] # subject 1 mean = 4

# ===========================================
# = How does mean react to a missing value? =
# ===========================================
tmpDF = bfi
tmpDF[1, "A1"] = NA
tmp = umx_score_scale("A", pos = 2:5, rev = 1, max = 6, data= tmpDF, name = "A", score="mean")
tmp$A[1] # NA: (na.rm defaults to FALSE)

tmp = umx_score_scale("A", pos = 2:5, rev = 1, max = 6, data= tmpDF, 
     name = "A", score="mean", na.rm=TRUE)
tmp$A[1] # 3.75

# ===============
# = Score = max =
# ===============
tmp = umx_score_scale("A", pos = 2:5, rev = 1, max = 6, data= bfi, name = "A", score="max")
tmp$A[1] # subject 1 max = 5 (the reversed item 1)

tmp = umx_score_scale("E", pos = c(3,4,5), rev = c(1,2), max = 6, data= tmp)
tmp$E_score[1] # default scale name

# Using @BillRevelle's psych package: More diagnostics, including alpha
scores= psych::scoreItems(items = bfi, min = 1, max = 6, keys = list(
	E = c("-E1","-E2", "E3", "E4", "E5"),
	A = c("-A1", "A2", "A3", "A4", "A5")
))
summary(scores)
scores$scores[1,]
#  E   A 
# 3.8 4.0 

# Compare output
# (note, by default psych::scoreItems replaces NAs with the sample median...)
RevelleE = as.numeric(scores$scores[,"E"]) * 5
all(RevelleE == tmp[,"E_score"], na.rm = TRUE)

umx

Structural Equation Modeling and Twin Modeling in R

v4.10.10
GPL-3
Authors
Timothy C. Bates [aut, cre] (<https://orcid.org/0000-0002-1153-9007>), Gillespie Nathan [wit], Michael Zakharin [wit], Brenton Wiernik [ctb], Joshua N. Pritikin [ctb], Michael C. Neale [ctb], Hermine Maes [ctb]
Initial release
2021-11-30

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.