[英]calculating z scores in R
我有一個示例數據框:
data<-data.frame(a=c(1,2,3),b=c(4,5,5),c=c(6,8,7),d=c(8,9,10))
並希望計算數據框中每一行的 z 分數並做了:
scores<-apply(data,1,zscore)
我使用了 zscore 函數
install.packages(c("R.basic"), contriburl="http://www.braju.com/R/repos/")
並得到了這個
row.names V1 V2 V3
a -1.2558275 -1.2649111 -1.0883839
b -0.2511655 -0.3162278 -0.4186092
c 0.4186092 0.6324555 0.2511655
d 1.0883839 0.9486833 1.2558275
但是當我嘗試手動計算數據框第一行的 z 分數時,我得到以下值:
-1.45 -0.29 0.4844, 1.25
手動,對於第一行,我計算如下:
1) 計算第一行的行均值 (4.75)
2) 從行平均值中減去每個值(例如;4.75-1.、4.75-4.、4.75-6.、4.75-8)
3) 對每個差值求平方。
4)將它們相加並除以第1行中的樣本量
5)因此我獲得方差(答案= 6.685),然后單獨獲得第一行的標准偏差(2.58)
6)然后應用z分數的公式。
zscore
函數,無論它是什么,似乎與base
包中的scale
相同。
apply(data, 1, scale)
## [,1] [,2] [,3]
## [1,] -1.2558275 -1.2649111 -1.0883839
## [2,] -0.2511655 -0.3162278 -0.4186092
## [3,] 0.4186092 0.6324555 0.2511655
## [4,] 1.0883839 0.9486833 1.2558275
對於每一列,它正在計算(x - mean(x)) / sd(x)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.