[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