Skip to content

dscore 2.0.0 with default key fails to calculate a D-score #61

@stefvanbuuren

Description

@stefvanbuuren

@jmseiden wrote:

I wanted to make you aware of a minor bug in the latest release of the dscore package. When scoring SF data, currently leaving the key as NULL results in all scores reported as NA. I am not sure why this is, as it should take the gsed2406 key when key is set to NULL. If the key is specified, the SF data scores fine.

Interestingly, the LF data does not have this same issue, and scores correctly with or without the key being specified.

Below is a reproducible example:

library(dscore)
packageVersion("dscore")
#> [1] '2.0.0'

df <- data.frame(
  AGE = 0.2,
  # Short Form item names
  gpalac001 = 1,
  gpacgc002 = 0,
  gpafmc003 = 1,
  gpasec004 = 1,
  gpamoc005 = 0,
  # Long Form item names
  gl1gmd001 = 1,
  gl1gmd002 = 0,
  gl1gmd003 = 1,
  gl1gmd004 = 1,
  gl1gmd005 = 0
)

get_itemnames(instrument = "gl1", order = "idnm", domain = "gm")
#>  [1] "gl1gmd001" "gl1gmd002" "gl1gmd003" "gl1gmd004" "gl1gmd005" "gl1gmd006"
#>  [7] "gl1gmd007" "gl1gmd008" "gl1gmd009" "gl1gmd010" "gl1gmd011" "gl1gmd012"
#> [13] "gl1gmd013" "gl1gmd014" "gl1gmd015" "gl1gmd016" "gl1gmd017" "gl1gmd018"
#> [19] "gl1gmd019" "gl1gmd020" "gl1gmd021" "gl1gmd022" "gl1gmd023" "gl1gmd024"
#> [25] "gl1gmd025" "gl1gmd026" "gl1gmd027" "gl1gmd028" "gl1gmd029" "gl1gmd030"
#> [31] "gl1gmd031" "gl1gmd032" "gl1gmd033" "gl1gmd034" "gl1gmd035" "gl1gmd036"
#> [37] "gl1gmd037" "gl1gmd038" "gl1gmd039" "gl1gmd040" "gl1gmd041" "gl1gmd042"
#> [43] "gl1gmd043" "gl1gmd044" "gl1gmd045" "gl1gmd046" "gl1gmd047" "gl1gmd048"
#> [49] "gl1gmd049"

# SF scores correctly when specifying key
dscore(df,
       items = c("gpalac001", "gpacgc002", "gpafmc003", "gpasec004", "gpamoc005"),
       xname = "AGE",
       key = "gsed2406",
       xunit = "decimal")
#>     a n   p     d      sem    daz
#> 1 0.2 5 0.6 13.47 3.687342 -1.954

# Reports NA score when no key specified
dscore(df,
       items = c("gpalac001", "gpacgc002", "gpafmc003", "gpasec004", "gpamoc005"),
       xname = "AGE",
       xunit = "decimal")
#>     a n  p  d sem daz
#> 1 0.2 0 NA NA  NA  NA

# LF scores correctly without key specified
dscore(df,
       items = c("gl1gmd001", "gl1gmd002", "gl1gmd003", "gl1gmd004", "gl1gmd005"),
       xname = "AGE",
       xunit = "decimal")
#>     a n   p     d      sem    daz
#> 1 0.2 5 0.6 19.59 3.334029 -0.262

Created on 2025-10-07 with reprex v2.1.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    howtoHow to handle a this?

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions