T得点の算出

id:bob3:20080224 にR言語での「正規分位点(正規化得点)の算出」というのを書きましたが、どうも世間ではこれの線型変換であるT得点というのがメジャーであるらしい。

#正規分位点(正規化得点)の算出
qnorm(rank(X)/(length(X)+1))

# T得点の算出
100-(qnorm(1-((rank(X)-0.5)/length(X)))*10+50)

データフレームを丸ごとT得点化

試しに、データフレームを丸ごとT得点化する関数を作ってみた。

T.score <- function(x)
{
	result <- NULL
	for (nn in names(x)){
		result <- cbind(result,
			100-(qnorm(1-((rank(x[, nn])-0.5)/length(x[, nn])))*10+50))
	}
	result <- data.frame(result)
	names(result) <- names(x)
	result
}

clusterSimパッケージのdata.Normalizationを参考にしています。
工夫の余地はいろいろありそうですが、とりあえず使い物にはなるかと。