R 创建z分数

R 创建z分数,r,R,我有一个由57个变量组成的数据文件。由于测量水平参差不齐,我想将其中大约12个转换为z分数。我查阅了互联网资源和帮助文件。一个internet资源建议我需要包Rbasic(不存在)。我使用了scale(),它似乎只将变量居中。我试过V5 mean/st.dev。这让我得到了非常奇怪的分数。有人能给我一个实用的adivce吗?muscale()是这里的正确选择: mu <- mean(myRow) sigma <- sqrt ( var(myRow) ) myRow <

我有一个由57个变量组成的数据文件。由于测量水平参差不齐,我想将其中大约12个转换为z分数。我查阅了互联网资源和帮助文件。一个internet资源建议我需要包Rbasic(不存在)。我使用了scale(),它似乎只将变量居中。我试过V5 mean/st.dev。这让我得到了非常奇怪的分数。有人能给我一个实用的adivce吗?

mu
scale()
是这里的正确选择:

mu <- mean(myRow) 

sigma   <- sqrt ( var(myRow)  )

myRow <- (myRow - mu )/ sqrt(sigma)
> x <- 1:10
> scale(x)
            [,1]
 [1,] -1.4863011
 [2,] -1.1560120
 [3,] -0.8257228
 [4,] -0.4954337
 [5,] -0.1651446
 [6,]  0.1651446
 [7,]  0.4954337
 [8,]  0.8257228
 [9,]  1.1560120
[10,]  1.4863011
attr(,"scaled:center")
[1] 5.5
attr(,"scaled:scale")
[1] 3.02765
> (x - mean(x)) / sd(x)
 [1] -1.4863011 -1.1560120 -0.8257228 -0.4954337 -0.1651446
 [6]  0.1651446  0.4954337  0.8257228  1.1560120  1.4863011
> mean(x)
[1] 5.5
> sd(x)
[1] 3.02765

简单地说,您忘记了:x-mean(x)/sd(x)中的括号


正确的代码是:x-均值(x)/sd(x)

如果您要求,scale会居中并缩放。阅读帮助页面。甚至不必问它,因为它是默认的权利?有些东西不太正确<可以使用
sd()
计算代码>西格玛。然后使用
sigma
的平方根来标准化数据。使用
scale
。这样比较容易。在优先顺序上说得很好,这让我多次被发现。谢谢!事实就是这样:当我使用(V5 mean)/sd时,这些值与PAWS给我的值不同。@gavin:很抱歉我这么晚才勾选了这个响应。直到最近,我才意识到有人投票支持这些反应。
> x - mean(x) / sd(x)
 [1] -0.8165902  0.1834098  1.1834098  2.1834098  3.1834098
 [6]  4.1834098  5.1834098  6.1834098  7.1834098  8.1834098