簡體   English   中英

計算 R 中的 z 分數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM