[R] sd, mean with a frequency distribution matrix

JS Huang js.huang at protective.com
Mon Feb 16 14:24:19 CET 2015


Hi,

  For the second one,
sqrt((sum(p[,1]^2*p[,2])-(sum(p[,1]*p[,2]))^2/sum(p[,2]))/(sum(p[,2])-1)),
please refer to the following link for an example to explain how it works.

http://www.lboro.ac.uk/media/wwwlboroacuk/content/mlsc/downloads/var_stand_deviat_group.pdf

  For the first one:
sd(unlist(sapply(1:dim(p)[1],function(i)rep(p[i,1],p[i,2])))).\:

sapply(1:dim(p)[1],function(i)rep(p[i,1],p[i,2])) to get all in the first
column of the matrix repeated the number of times in the second column.

After that, make the resulting list to become a vector so that it can be
executed with sd function.

  Here is some illustrative example.
> p
     [,1] [,2]
[1,]   10    3
[2,]   20    4
[3,]   30    5
> sapply(1:dim(p)[1],function(i)rep(p[i,1],p[i,2]))
[[1]]
[1] 10 10 10

[[2]]
[1] 20 20 20 20

[[3]]
[1] 30 30 30 30 30
> unlist(sapply(1:dim(p)[1],function(i)rep(p[i,1],p[i,2])))
 [1] 10 10 10 20 20 20 20 30 30 30 30 30
> sd(unlist(sapply(1:dim(p)[1],function(i)rep(p[i,1],p[i,2]))))
[1] 8.348471




--
View this message in context: http://r.789695.n4.nabble.com/sd-mean-with-a-frequency-distribution-matrix-tp4703218p4703338.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list