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