# Standard Scores in R

The R function for calculating standard scores is called `scale()`

. Supply a vector of scores, and `scale()`

returns a vector of z-scores along with, helpfully, the mean and the standard deviation.

To show `scale()`

in action, isolate a subset of the `Cars93`

data frame. (It’s in the MASS package. On the Packages tab, check the box next to MASS if it’s unchecked.)

Specifically, create a vector of the horsepowers of 8-cylinder cars from the USA:

`> Horsepower.USA.Eight <- Cars93$Horsepower[Origin == "USA" & Cylinders == 8]`

`> Horsepower.USA.Eight`

`[1] 200 295 170 300 190 210`

And now for the z-scores:

`> scale(Horsepower.USA.Eight)`

`[,1]`

`[1,] -0.4925263`

`[2,] 1.2089283`

`[3,] -1.0298278`

`[4,] 1.2984785`

`[5,] -0.6716268`

`[6,] -0.3134259`

`attr(,"scaled:center")`

`[1] 227.5`

`attr(,"scaled:scale")`

`[1] 55.83458`

That last value is *s*, not Σ. If you have to base your z-scores on Σ, divide each element in the vector by the square root of (*N*-1)/*N*:

`> N <- length(Horsepower.USA.Eight)`

`> scale(Horsepower.USA.Eight)/sqrt((N-1)/N)`

`[,1]`

`[1,] -0.5395356`

`[2,] 1.3243146`

`[3,] -1.1281198`

`[4,] 1.4224120`

`[5,] -0.7357303`

`[6,] -0.3433408`

`attr(,"scaled:center")`

`[1] 227.5`

`attr(,"scaled:scale")`

`[1] 55.83458`

Notice that `scale() `

still returns *s*.