# [R] computing standard deviation in R and in Python

Bogdan Tanasa t@n@@@ @end|ng |rom gm@||@com
Fri May 24 13:39:21 CEST 2019

```Dear Rui, thank you very much !

On Fri, May 24, 2019 at 4:35 AM Rui Barradas <ruipbarradas using sapo.pt> wrote:

> Hello,
>
> This has to do with what kind of variance estimator is being used.
> R uses the unbiased estimator and Python the MLE one.
>
>
>
> var1 <- function(x){
>    n <- length(x)
>    (sum(x^2) - sum(x)^2/n)/(n - 1)
> }
> var2 <- function(x){
>    n <- length(x)
>    (sum(x^2) - sum(x)^2/n)/n
> }
>
> sd1 <- function(x) sqrt(var1(x))
> sd2 <- function(x) sqrt(var2(x))
>
> z <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, ncol=3, byrow=T)
>
> apply(z, 1, sd1)  # R
> apply(z, 1, sd2)  # Python
>
> apply(z, 2, sd1)  # R
> apply(z, 2, sd2)  # Python
>
>
> Hope this helps,
>
>
> Às 11:27 de 24/05/19, Bogdan Tanasa escreveu:
> >
> > do python and R have different ways to compute the standard deviation
> (sd) ?
> >
> > for example, in python, starting with :
> >
> > a = np.array([[1,2,3],  [4,5,6], [7,8,9]])
> > print(a.std(axis=1)) ### per row : [0.81649658 0.81649658 0.81649658]
> > print(a.std(axis=0)) ### per column : [2.44948974 2.44948974 2.44948974]
> >
> > # and in R :
> >
> >
> >
> > z <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, ncol=3, byrow=T)
> > # z# [,1] [,2] [,3]#[1,] 1 2 3#[2,] 4 5 6#[3,] 7 8 9
> > # apply(z, 1, sd)
> > sd(z[1,]) #1
> > sd(z[2,]) #1
> > sd(z[3,]) #1
> > # apply(z, 2, sd)
> > sd(z[,1]) #3
> > sd(z[,2]) #3
> > sd(z[,3]) #3
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help