myvars <- c("mpg","hp","wt") summary(mtcars[myvars]) mpg hp wt Min. :10.40 Min. : 52.0 Min. :1.513 1st Qu.:15.43 1st Qu.: 96.5 1st Qu.:2.581 Median :19.20 Median :123.0 Median :3.325 Mean :20.09 Mean :146.7 Mean :3.217 3rd Qu.:22.80 3rd Qu.:180.0 3rd Qu.:3.610 Max. :33.90 Max. :335.0 Max. :5.424
自定义描述性统计函数
> mystats <- function(x,na.omit=FALSE) + { + if(na.omit) + x <- x[!is.na(x)] + m <- mean(x) + n <- length(x) + s <- sd(x) + #计算偏度 + skew <- sum((x-m)^3/s^3)/n + #计算峰度 + kurt <- sum((x-m)^4/s^4)/n-3 + return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt)) + } > sapply(mtcars[myvars],mystats) mpg hp wt n 32.000000 32.0000000 32.00000000 mean 20.090625 146. 3. stdev 6.026948 68. 0. skew 0. 0. 0. kurtosis -0. -0. -0.0 > apply(mtcars[myvars],2,mystats) mpg hp wt n 32.000000 32.0000000 32.00000000 mean 20.090625 146. 3. stdev 6.026948 68. 0. skew 0. 0. 0. kurtosis -0. -0. -0.0
> library(Hmisc) > Hmisc::describe(mtcars[myvars]) mtcars[myvars] 3 Variables 32 Observations ------------------------------------------------------------------------------------------ mpg n missing distinct Info Mean Gmd .05 .10 .25 .50 32 0 25 0.999 20.09 6.796 12.00 14.34 15.43 19.20 .75 .90 .95 22.80 30.09 31.30 lowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9 ------------------------------------------------------------------------------------------ hp n missing distinct Info Mean Gmd .05 .10 .25 .50 32 0 22 0.997 146.7 77.04 63.65 66.00 96.50 123.00 .75 .90 .95 180.00 243.50 253.55 lowest : 52 62 65 66 91, highest: 215 230 245 264 335 ------------------------------------------------------------------------------------------ wt n missing distinct Info Mean Gmd .05 .10 .25 .50 32 0 29 0.999 3.217 1.089 1.736 1.956 2.581 3.325 .75 .90 .95 3.610 4.048 5.293 lowest : 1.513 1.615 1.835 1.935 2.140, highest: 3.845 4.070 5.250 5.345 5.424 ------------------------------------------------------------------------------------------ >
> stat.desc(mtcars[myvars]) mpg hp wt nbr.val 32.0000000 32.0000000 32.0000000 nbr.null 0.0000000 0.0000000 0.0000000 nbr.na 0.0000000 0.0000000 0.0000000 min 10. 52.0000000 1. max 33. 335.0000000 5. range 23. 283.0000000 3. sum 642. 4694.0000000 102. median 19. 123.0000000 3. mean 20.0 146. 3. SE.mean 1.0 12. 0. CI.mean.0.95 2. 24. 0. var 36. 4700. 0. std.dev 6.0 68. 0. coef.var 0. 0. 0. > stat.desc(mtcars[myvars],norm = TRUE) mpg hp wt nbr.val 32.0000000 32.00000000 32.00000000 nbr.null 0.0000000 0.00000000 0.00000000 nbr.na 0.0000000 0.00000000 0.00000000 min 10. 52.00000000 1. max 33. 335.00000000 5. range 23. 283.00000000 3. sum 642. 4694.00000000 102. median 19. 123.00000000 3. mean 20.0 146. 3. SE.mean 1.0 12. 0. CI.mean.0.95 2. 24. 0. var 36. 4700. 0. std.dev 6.0 68. 0. coef.var 0. 0. 0. skewness 0. 0. 0. skew.2SE 0. 0. 0. kurtosis -0. -0. -0.0 kurt.2SE -0. -0.0 -0.0 normtest.W 0. 0. 0. normtest.p 0. 0.0 0.0 >
library(psych) > myvars <- c("mpg","hp","wt") > describe(mtcars[myvars]) vars n mean sd median trimmed mad min max range skew kurtosis se mpg 1 32 20.09 6.03 19.20 19.70 5.41 10.40 33.90 23.50 0.61 -0.37 1.07 hp 2 32 146.69 68.56 123.00 141.19 77.10 52.00 335.00 283.00 0.73 -0.14 12.12 wt 3 32 3.22 0.98 3.33 3.15 0.77 1.51 5.42 3.91 0.42 -0.02 0.17 >
aggregate(mtcars[myvars],by=list(am=mtcars$am),mean) am mpg hp wt 1 0 17.14737 160.2632 3. 2 1 24.39231 126.8462 2.
dstats <- function(x)sapply(x,mystats) > myvars <- c("mpg","hp","wt") > by(mtcars[myvars],mtcars$am,dstats) mtcars$am: 0 mpg hp wt n 19.00000000 19.00000000 19.0000000 mean 17. 160. 3. stdev 3. 53. 0. skew 0.0 -0.0 0. kurtosis -0. -1. 0. ------------------------------------------------------------------- mtcars$am: 1 mpg hp wt n 13.00000000 13.0000000 13.0000000 mean 24. 126. 2. stdev 6. 84.0 0. skew 0.0 1. 0. kurtosis -1. 0. -1.
myvars <- c("mpg","hp","wt") > summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats) am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew 1 0 19 17.14737 3. 0.0 -0. 19 160.2632 53.90820 -0.0 2 1 13 24.39231 6. 0.0 -1. 13 126.8462 84.06232 1. hp.kurtosis wt.n wt.mean wt.stdev wt.skew wt.kurtosis 1 -1. 19 3. 0. 0. 0. 2 0. 13 2. 0. 0. -1.
library(psych) > describeBy(mtcars[myvars],list(am=mtcars$am)) Descriptive statistics by group am: 0 vars n mean sd median trimmed mad min max range skew kurtosis se mpg 1 19 17.15 3.83 17.30 17.12 3.11 10.40 24.40 14.00 0.01 -0.80 0.88 hp 2 19 160.26 53.91 175.00 161.06 77.10 62.00 245.00 183.00 -0.01 -1.21 12.37 wt 3 19 3.77 0.78 3.52 3.75 0.45 2.46 5.42 2.96 0.98 0.14 0.18 ------------------------------------------------------------------- am: 1 vars n mean sd median trimmed mad min max range skew kurtosis se mpg 1 13 24.39 6.17 22.80 24.38 6.67 15.00 33.90 18.90 0.05 -1.46 1.71 hp 2 13 126.85 84.06 109.00 114.73 63.75 52.00 335.00 283.00 1.36 0.56 23.31 wt 3 13 2.41 0.62 2.32 2.39 0.68 1.51 3.57 2.06 0.21 -1.17 0.17
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227212.html原文链接:https://javaforall.net
