calc_stanine {lazy.dnc}R Documentation

個人の得点からスタナインを計算

Description

個人の得点からスタナインを計算

Usage

calc_stanine(data, bpU = NULL, res_gs = NULL, score_name = "score")

Arguments

data

個人の得点:ベクトルまたはデータフレーム

bpU

各段階の上限: 長さが段階数のベクトル

res_gs

get_stanine の出力

score_name

data の中の個人の得点を含むカラムの名前

Details

この関数は以下の処理をしている。

 breaksU=c(-99, bpU); ncat=length(bpU)
 s9 <- as.numeric( cut( data[,score_name], breaksU, labels=1:ncat ) )

Value

データフレーム
スタナインは s9 という名称のカラムとして出力される。

Examples


# データの生成
set.seed(1701)
n <- 100

# 満点の指定
# maxscore <- 200
maxscore <- 100

# 正規分布乱数
score_raw <- round( rnorm( n,maxscore/2, 0.133*maxscore ) )

# データを区間 [0,maxscore] に入れる。
if( any(score_raw < 0 | score_raw > maxscore) )
  score_raw <- score_raw[-which(score_raw < 0 | score_raw > maxscore)]

# 欠測得点の生成
locz <- sample(0:maxscore,10, replace=FALSE)
score_raw <- score_raw[-locz]

# n に足りない部分を一様乱数で補う。
if( length(score_raw) < n )
  score_raw <- c( score_raw, round( runif(n-length(score_raw)
                , 0, maxscore) ) )


# 度数分布の計算
freq <- table(score_raw)
score <- as.numeric(names(freq))
freq <- as.numeric(unclass(freq))

# 度数分布の欠測部分の補完
score0 <- numeric(maxscore+1)
score0[score+1] <- score
freq0 <- numeric(maxscore+1)
freq0[score+1] <- freq
freq <- freq0
score <- score0


# 素データからの計算
st2 <- get_stanine( score_raw, print=1, plot=0 )
bp2 <- st2$bp_raw
ctable2 <- st2$ctable


# 度数分布からの計算
st1 <- get_stanine( score,freq, print=1, plot=0 )
bp1 <- st1$bp_raw
ctable1 <- st1$ctable

# 結果の比較(同一になるはず)
s91 <- calc_stanine( score_raw, bpU=st1$bp[,2] )$s9
max(abs(( s91-st2$ctable_raw$s9 )))


[Package lazy.dnc version 0.0.1 ]