R语言实战之描述性统计分析

下面展示一些 描述性统计分析的R代码语言

vars <- c("mpg","hp","wt")
head(mtcars[vars])#创造一个统计的函数列表
#通过sapply()计算描述性统计变量(包括偏度和峰度)
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)/nkurt <- sum((x-m)^4/s^4)/n - 3return(c(n=n, mean = m, stdev = s, skew = skew, kurtosis = kurt))
}
sapply(mtcars[vars],mystats)
#sapply(mtcars[myvars],mystats,na.omit=TRUE)单纯忽略缺失值library(Hmisc)
describe(mtcars[vars])
#通过pastecs包中的stat.desc()函数计算描述性统计量
library(pastecs)
stat.desc(mtcars[vars])library(psych)
describe(mtcars[vars])#分组计算描述性统计量
aggregate(mtcars[vars], by = list(am = mtcars$am), mean)
#aggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。#使用by()分组计算描述性统计量
dstats <- function(x)sapply(x,mystats)
vars <- c("mpg","hp","wt")
by(mtcars[vars],mtcars$am,dstats)#使用doBy包中的summaryBy()分组计算概述统计量
library(doBy)
summaryBy(mpg + hp + wt ~ am, data = mtcars, FUN = mystats)#使用psych包分组计算概述统计量
library(psych)
describeBy(mtcars[vars],mtcars$am)
#不允许指定任意函数,所以普适性较低
#psych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。#对比分析
library(doBy)
summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)
library(psych)
describeBy(mtcars[vars],list(am=mtcars$am))#使用reshape包分组计算概述统计量
library(reshape)
dstats1 <- function(x)(c(n = length(x), mean = mean(x), sd = sd(x)))
dfm <- melt(mtcars, measure.vars = vars, id.vars = c("am","cyl"))
cast(dfm, am + cyl + variable ~ . , dstats1)
> vars <- c("mpg","hp","wt")
> head(mtcars[vars])mpg  hp   wt
Mazda RX4         21.0 110 2.62
Mazda RX4 Wag     21.0 110 2.88
Datsun 710        22.8  93 2.32
Hornet 4 Drive    21.4 110 3.21
Hornet Sportabout 18.7 175 3.44
Valiant           18.1 105 3.46
>
> #创造一个统计的函数列表
> #通过sapply()计算描述性统计变量(包括偏度和峰度)
> 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[vars],mystats)mpg      hp      wt
n        32.000  32.000 32.0000
mean     20.091 146.688  3.2172
stdev     6.027  68.563  0.9785
skew      0.611   0.726  0.4231
kurtosis -0.373  -0.136 -0.0227
> #sapply(mtcars[myvars],mystats,na.omit=TRUE)单纯忽略缺失值
>
> library(Hmisc)
> describe(mtcars[vars])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
> #通过pastecs包中的stat.desc()函数计算描述性统计量
> library(pastecs)
> stat.desc(mtcars[vars])mpg       hp      wt
nbr.val       32.00   32.000  32.000
nbr.null       0.00    0.000   0.000
nbr.na         0.00    0.000   0.000
min           10.40   52.000   1.513
max           33.90  335.000   5.424
range         23.50  283.000   3.911
sum          642.90 4694.000 102.952
median        19.20  123.000   3.325
mean          20.09  146.688   3.217
SE.mean        1.07   12.120   0.173
CI.mean.0.95   2.17   24.720   0.353
var           36.32 4700.867   0.957
std.dev        6.03   68.563   0.978
coef.var       0.30    0.467   0.304
>
> library(psych)
> describe(mtcars[vars])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[vars], by = list(am = mtcars$am), mean)am  mpg  hp   wt
1  0 17.1 160 3.77
2  1 24.4 127 2.41
> #aggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。
>
>
> #使用by()分组计算描述性统计量
> dstats <- function(x)sapply(x,mystats)
> vars <- c("mpg","hp","wt")
> by(mtcars[vars],mtcars$am,dstats)
mtcars$am: 0mpg       hp     wt
n        19.000  19.0000 19.000
mean     17.147 160.2632  3.769
stdev     3.834  53.9082  0.777
skew      0.014  -0.0142  0.976
kurtosis -0.803  -1.2097  0.142
-----------------------------------------------------------------------------
mtcars$am: 1mpg      hp     wt
n        13.0000  13.000 13.000
mean     24.3923 126.846  2.411
stdev     6.1665  84.062  0.617
skew      0.0526   1.360  0.210
kurtosis -1.4554   0.563 -1.174
>
> #使用doBy包中的summaryBy()分组计算概述统计量
> library(doBy)
> 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 hp.kurtosis wt.n
1  0    19     17.1      3.83   0.0140       -0.803   19     160     53.9 -0.0142      -1.210   19
2  1    13     24.4      6.17   0.0526       -1.455   13     127     84.1  1.3599       0.563   13wt.mean wt.stdev wt.skew wt.kurtosis
1    3.77    0.777   0.976       0.142
2    2.41    0.617   0.210      -1.174
>
> #使用psych包分组计算概述统计量
> library(psych)
> describeBy(mtcars[vars],mtcars$am)Descriptive statistics by group
group: 0vars  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
-----------------------------------------------------------------------------
group: 1vars  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
> #不允许指定任意函数,所以普适性较低
> #psych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。
>
> #对比分析
> library(doBy)
> 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 hp.kurtosis wt.n
1  0    19     17.1      3.83   0.0140       -0.803   19     160     53.9 -0.0142      -1.210   19
2  1    13     24.4      6.17   0.0526       -1.455   13     127     84.1  1.3599       0.563   13wt.mean wt.stdev wt.skew wt.kurtosis
1    3.77    0.777   0.976       0.142
2    2.41    0.617   0.210      -1.174
> library(psych)
> describeBy(mtcars[vars],list(am=mtcars$am))Descriptive statistics by group
am: 0vars  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: 1vars  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
>
>
> #使用reshape包分组计算概述统计量
> library(reshape)
> dstats1 <- function(x)(c(n = length(x), mean = mean(x), sd = sd(x)))
> dfm <- melt(mtcars, measure.vars = vars, id.vars = c("am","cyl"))
> cast(dfm, am + cyl + variable ~ . , dstats1)am cyl variable  n   mean     sd
1   0   4      mpg  3  22.90  1.453
2   0   4       hp  3  84.67 19.655
3   0   4       wt  3   2.94  0.408
4   0   6      mpg  4  19.12  1.632
5   0   6       hp  4 115.25  9.179
6   0   6       wt  4   3.39  0.116
7   0   8      mpg 12  15.05  2.774
8   0   8       hp 12 194.17 33.360
9   0   8       wt 12   4.10  0.768
10  1   4      mpg  8  28.07  4.484
11  1   4       hp  8  81.88 22.655
12  1   4       wt  8   2.04  0.409
13  1   6      mpg  3  20.57  0.751
14  1   6       hp  3 131.67 37.528
15  1   6       wt  3   2.75  0.128
16  1   8      mpg  2  15.40  0.566
17  1   8       hp  2 299.50 50.205
18  1   8       wt  2   3.37  0.283

以上,共勉,有问题欢迎评论~

R语言实战之描述性统计分析相关推荐

  1. R语言实战之基本统计分析

    原文出处:https://www.jianshu.com/p/90ed27810474 第7章 基本统计分析 在数据被组织成合适的形式后,可以使用图形探索数据,接下来是使用数值描述每个变量的分布,然后 ...

  2. R语言实战笔记 基本统计分析-频数列联表和简单的独立性检验

    描述性统计分析 使用车辆路试(mtcars)数据集.关注每加仑汽油行驶英里数(mpg),马力(hp),车重(wt). > myvars<-c("mpg","h ...

  3. R语言实战笔记 基本统计分析-相关

    相关 相关系数可以用来描述定量变量之间的关系. 将使用R基础安装中的state.x77数据集,提供了美国50个州在1977年的人口.收入.文盲率.预期寿命.谋杀率和高中毕业率数据等. 数据如下: 相关 ...

  4. R:R语言实战学习一(基本统计分析)

    本学期的课程R语言实战只学了前六章的皮毛,实际上后面的知识用的更多,前面的是基础,这次学习第七章:基本统计分析. 1.描述性统计分析 主要关注分析连续型变量的中心趋势.变化性和分布形状的方法,为了便于 ...

  5. 备受推崇的《R语言实战》真的值得如此好评吗?

    作者:刘洋溢  R语言中文社区专栏作者 知乎ID:https://zhuanlan.zhihu.com/p/51396601 阅前思考: R语言入门必看的<R语言实战>真的是很好的入门书籍 ...

  6. R语言必看推荐:R语言入门经典版(中文版)+R语言实战第二版(中文完整版)

    R语言入门经典(中文版)R for beginners R语言经典教材 第二版 适合初学者 作者:Emmanuel Paradis R 语言实战第二版(中文完整版) R语言实战(第2版)注重实用性,是 ...

  7. R语言实战笔记--第十五章 处理缺失数据

    R语言实战笔记–第十五章 处理缺失数据 标签(空格分隔): R语言 处理缺失数据 VIM mice 缺失值(NA),是导致我们计算错误的一大来源,处理缺失数据在实际的应用中有着较为重要的作用. 基本方 ...

  8. R语言实战:机器学习与数据分析源代码5

    本文辑录了<R语言实战--机器学习与数据分析>(电子工业出版社2016年出版)一书第6章至第7章前半部分(至136页)之代码.本书引言请见如下链接: http://blog.csdn.ne ...

  9. 对比《学习R》PDF代码+《R语言实战第2版》PDF代码+《R数据科学》PDF代码分析

    R语言是世界上最流行的用于数据处理和统计分析的脚本语言.考古学家用它来跟踪古代文明的传播,医药公司用它来探索哪种药物更安全.更有效,精算师用它评估金融风险以保证市场的平稳运行.总之,在大数据时代,统计 ...

最新文章

  1. Windows 技术篇-WPS关闭推送广告配置方法
  2. 【LeetCode】414.第三大的数
  3. Eureka、Zookeeper和Consul 的区别
  4. 另一种同步软件Unison的使用方法
  5. 一个好用的基于若干静态图片生成gif图片的在线工具
  6. How is SAP CRM employee responsible being determined
  7. 数据结构铁轨问题_每天5分钟用C#学习数据结构(20)图 Part 1
  8. Redis集群的搭建与主从复制,redis-cluster
  9. 国产CAM究竟水平如何?看完测试我震惊了
  10. Scala二十四点游戏
  11. boost入门(三):Asio简单示例
  12. 坚持十年博客写作,不忘初心,方得始终
  13. 使用链表实现LIFO栈
  14. 一、PR的初始重要设置
  15. CDN流量是什么,怎么计算?
  16. 解决Maven打包报错:Failed to clean project: Failed to delete
  17. 深度学习服务器配置过程
  18. 前端笔试面试题之三(2015美的前端笔试)
  19. Quectel EC200N-CN 大尺寸物联网首选LTE Cat 1模块[移远通信]
  20. homebrew是个啥

热门文章

  1. 项目开发-疯狂连连看游戏开发
  2. 扫描的图片PDF转换为txt
  3. java实现手机截屏工具
  4. java jtextfield 透明_具有透明文本字段的Java Nimbus LAF
  5. win7电脑无线网卡服务器,Win7系统下怎么查看无线网卡是否支持5G?
  6. 魔百和 MG100/M101/MG101 刷机包
  7. 不谈F1的设备指纹都是耍流氓?
  8. 软件研发全栈国产化解决方案
  9. BNU 0919 日常训练 之 G N! ——高精度 万进制 10000的阶乘
  10. 蓝桥杯 成绩排序 C++算法提高 HERODING的蓝桥杯之路