打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数据分析|R-描述性统计

    前文介绍了脏数据中缺失值数据分析|R-缺失值处理和异常值数据分析|R-异常值处理的常规处理方法,之后就可以对数据进行简单的描述性统计,方便我们对数据有一个整体的认识。

 常见描述性统计可以通过最小值、下四分位数、中位数、上四分位数和最大值,均值、众数、标准差、极差等查看数据的分布和离散程度;通过偏度(数据分布形态呈现左偏或右偏)和峰度(分布形态呈现尖瘦或矮胖)等查看数据的正态与否。

下面简单的介绍如何使用R实现数值型变量的上述统计量

1 基础包中summary()函数

 可得到数值型变量的最小值、下四分位数、中位数、上四分位数和最大值。

#使用自带的mtcars数据集,选择mpg,disphp三个数值型变量进行分析。head(mtcars)data <- mtcars[c("mpg","disp","hp")]summary(data) mpg disp hp Min. :10.40 Min. : 71.1 Min. : 52.0 1st Qu.:15.43 1st Qu.:120.8 1st Qu.: 96.5 Median :19.20 Median :196.3 Median :123.0 Mean :20.09 Mean :230.7 Mean :146.7 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 Max. :33.90 Max. :472.0 Max. :335.0

2 psych包中describe()函数

    可得到非缺失值的个数、均值、标准差、中位数、截尾平均数、绝对中位差、最小值、最大值、极差、偏度、丰度和平均值的标准误

#install.packages("psych")library(psych)describe(data) vars n mean sd median trimmed mad min max range skew kurtosis sempg 1 32 20.1 6.03 19.2 19.7 5.41 10.4 33.9 23.5 0.61 -0.37 1.07disp 2 32 230.7 123.94 196.3 222.5 140.48 71.1 472.0 400.9 0.38 -1.21 21.91hp      3 32 146.7  68.56  123.0   141.2  77.10 52.0 335.0 283.0 0.73    -0.14 12.12

3 pastecs包中stat.desc()函数

 当设置norm=TRUE(非默认)时,可以返回偏度和丰度(统计显著程度)和Shapiro-Wilk正态检验的结果。

其中p=0.05表示计算平均数的置信区间默认置信度为0.95.

#install.packages("pastecs")library(pastecs)options(digits=3) #设定三位小数stat.desc(data,norm = TRUE) mpg disp hpnbr.val 32.000 3.20e+01 32.0000nbr.null 0.000 0.00e+00 0.0000nbr.na 0.000 0.00e+00 0.0000min 10.400 7.11e+01 52.0000max 33.900 4.72e+02 335.0000range 23.500 4.01e+02 283.0000sum 642.900 7.38e+03 4694.0000median 19.200 1.96e+02 123.0000mean 20.091 2.31e+02 146.6875SE.mean 1.065 2.19e+01 12.1203CI.mean.0.95 2.173 4.47e+01 24.7196var 36.324 1.54e+04 4700.8669std.dev 6.027 1.24e+02 68.5629coef.var 0.300 5.37e-01 0.4674skewness 0.611 3.82e-01 0.7260skew.2SE 0.737 4.60e-01 0.8759kurtosis -0.373 -1.21e+00 -0.1356kurt.2SE -0.230 -7.46e-01 -0.0837normtest.W 0.948 9.20e-01 0.9334normtest.p 0.123 2.08e-02 0.0488

4 自定义函数

 除了上述函数包外,还可以自定义函数可以只返回需要的值。

my_describe <- function(x){ options(digits = 3) N = length(x); Nmiss = sum(is.na(x)); Min = min(x, na.rm = TRUE); Q1 = quantile(x, probs = 0.25, na.rm = TRUE); Median = median(x, na.rm = TRUE); Q3 = quantile(x, probs = 0.75, na.rm = TRUE); Max = max(x, na.rm = TRUE);  Mean = mean(x, na.rm = TRUE); Sd = sd(x, na.rm = TRUE); Range = abs(diff(range(x))); skew <- sum((x-Mean)^3/Sd^3)/N kurt <- sum((x-Mean)^4/Sd^4)/N-3  #返回结果  return(data.frame(N = N, Nmiss = Nmiss, Min = Min, Q1 = Q1, Median = Median, Q3 = Q3, Max = Max, Mean = Mean, Sd = Sd, Range = Range, Skewness = skew, Kurtosis = kurt))}sapply(data, my_describe) mpg disp hp N 32 32 32 Nmiss 0 0 0 Min 10.4 71.1 52 Q1 15.4 121 96.5 Median 19.2 196 123 Q3 22.8 326 180 Max 33.9 472 335 Mean     20.1   231   147     Sd 6.03 124 68.6 Range 23.5 401 283 Skewness 0.611 0.382 0.726 Kurtosis -0.373 -1.21 -0.136

 可以看出自定义函数的结果与上述R包的结果一致,而且可以根据自己的需求选择返回值。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言:EM算法和高斯混合模型聚类的实现
R语言:R语言居然可以自动导出统计结果并形成论文表格?!跪了
r语言电信公司客户churn数据流失knn预测分析
笔记 GWAS 操作流程6-2:手动计算GWAS分析中的GLM和Logistic模型
K-means
标准化大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服