R语言笔记-数值型变量的描述统计
文章目录
- 不分亚组的描述统计
- 使用向量操作计算单个变量的描述统计量
- 计算汇总了多个变量的数据框的描述统计量:``sapply()``
- ``psych``包:``describe()``
- 分亚组的描述统计
- ``aggregate()``
- ``epiDisplay``包:``summ()``
- ``psych``包:``describeBy()``
不分亚组的描述统计
以MASS
包中的数据集birthwt
为示例。
使用向量操作计算单个变量的描述统计量
- 单个变量统计函数计算的基本语法:
统计函数(数据框$变量名)
- 关于基本统计函数的更多内容,参见这里
计算汇总了多个变量的数据框的描述统计量:sapply()
使用dplyr
包中的select
,汇总数据框中的数值型变量。为防止重名导致的混淆,包名::函数名
特指调用指定包内的函数。
> data(birthwt,package = "MASS")
> cont.vars<-dplyr::select(birthwt,age,lwt,bwt)
使用sapply(数据框名,统计函数名)
,计算该数据框内所有变量的指定描述统计结果。
> sapply(cont.vars,mean)age lwt bwt 23.2381 129.8148 2944.5873
> sapply(cont.vars,sd)age lwt bwt 5.298678 30.579380 729.214295
> sapply(cont.vars,min)
age lwt bwt 14 80 709
> sapply(cont.vars,max)age lwt bwt 45 250 4990
注意变量必须全为数值型 (预先使用select()
挑选的原因)否则会报错:
> sapply(birthwt,mean)low age lwt race NA 23.2380952 129.8148148 NA smoke ptl ht ui NA 0.1957672 NA NA ftv bwt 0.7936508 2944.5873016
Warning messages:
1: In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA
2: In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA
3: In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA
4: In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA
5: In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA
> sapply(birthwt,sd)
Error in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) : Calling var(x) on a factor x is defunct.Use something like 'all(duplicated(x)[-1L])' to test for a constant vector.
psych
包:describe()
psych
包下describe()
可以汇总的形式计算数据框内所有变量的常见描述统计量,忽略缺失值。注意所有分类变量都会被当作数值变量处理。
> library(psych)
> describe(birthwt)vars n mean sd median trimmed mad
low* 1 189 1.31 0.46 1 1.27 0.00
age 2 189 23.24 5.30 23 22.90 5.93
lwt 3 189 129.81 30.58 121 126.07 20.76
race* 4 189 1.85 0.92 1 1.81 0.00
smoke* 5 189 1.39 0.49 1 1.37 0.00
ptl 6 189 0.20 0.49 0 0.08 0.00
ht* 7 189 1.06 0.24 1 1.00 0.00
ui* 8 189 1.15 0.36 1 1.07 0.00
ftv 9 189 0.79 1.06 0 0.62 0.00
bwt 10 189 2944.59 729.21 2977 2961.76 834.70min max range skew kurtosis se
low* 1 2 1 0.80 -1.36 0.03
age 14 45 31 0.71 0.53 0.39
lwt 80 250 170 1.38 2.25 2.22
race* 1 3 2 0.31 -1.75 0.07
smoke* 1 2 1 0.44 -1.82 0.04
ptl 0 3 3 2.76 8.17 0.04
ht* 1 2 1 3.55 10.67 0.02
ui* 1 2 1 1.97 1.87 0.03
ftv 0 6 6 1.56 3.00 0.08
bwt 709 4990 4281 -0.21 -0.14 53.04
分亚组的描述统计
aggregate()
基本语法:aggregate(数据框名,by=list(变量名=数据框名$变量名),统计函数名)
。若其中存在分类变量,会报错。
> aggregate(cont.vars,by=list(smoke=birthwt$smoke),mean)smoke age lwt bwt
1 no 23.42609 130.8957 3055.696
2 yes 22.94595 128.1351 2771.919
list()
中可并列多个分类变量以实现交叉分组下的统计。
> aggregate(cont.vars,by=list(smoke=birthwt$smoke,race=birthwt$race),mean)smoke race age lwt bwt
1 no white 26.02273 138.8409 3428.750
2 yes white 22.82692 126.3077 2826.846
3 no black 19.93750 149.4375 2854.500
4 yes black 24.10000 142.6000 2504.000
5 no other 22.36364 119.1455 2815.782
6 yes other 22.50000 124.0000 2757.167
epiDisplay
包:summ()
基本语法:summ(变量名,by=数据框名$分类变量名)
> summ(birthwt$bwt,by=birthwt$smoke)
For birthwt$smoke = no obs. mean median s.d. min. max. 115 3055.696 3100 752.657 1021 4990 For birthwt$smoke = yes obs. mean median s.d. min. max. 74 2771.919 2775.5 659.635 709 4238
除了输出基本统计量之外,同时还会输出一张图,用于探索数据的趋势、离群值很方便:
psych
包:describeBy()
基本语法:describeBy(数据框名,数据框名$分类变量名)
> describeBy(birthwt,birthwt$smoke)Descriptive statistics by group
group: novars n mean sd median trimmed mad
low* 1 115 1.25 0.44 1 1.19 0.00
age 2 115 23.43 5.47 23 23.09 4.45
lwt 3 115 130.90 28.43 124 127.62 20.76
race* 4 115 2.10 0.93 2 2.12 1.48
smoke* 5 115 1.00 0.00 1 1.00 0.00
ptl 6 115 0.12 0.38 0 0.01 0.00
ht* 7 115 1.06 0.24 1 1.00 0.00
ui* 8 115 1.13 0.34 1 1.04 0.00
ftv 9 115 0.82 0.98 1 0.68 1.48
bwt 10 115 3055.70 752.66 3100 3086.14 816.91min max range skew kurtosis se
low* 1 2 1 1.13 -0.74 0.04
age 14 45 31 0.77 1.00 0.51
lwt 85 241 156 1.30 2.00 2.65
race* 1 3 2 -0.19 -1.82 0.09
smoke* 1 1 0 NaN NaN 0.00
ptl 0 2 2 3.19 10.13 0.04
ht* 1 2 1 3.63 11.24 0.02
ui* 1 2 1 2.17 2.72 0.03
ftv 0 4 4 1.20 1.15 0.09
bwt 1021 4990 3969 -0.28 -0.32 70.19
---------------------------------------
group: yesvars n mean sd median trimmed mad
low* 1 74 1.41 0.49 1.0 1.38 0.00
age 2 74 22.95 5.05 22.0 22.60 5.93
lwt 3 74 128.14 33.79 120.0 123.58 22.24
race* 4 74 1.46 0.76 1.0 1.33 0.00
smoke* 5 74 2.00 0.00 2.0 2.00 0.00
ptl 6 74 0.31 0.62 0.0 0.18 0.00
ht* 7 74 1.07 0.25 1.0 1.00 0.00
ui* 8 74 1.18 0.38 1.0 1.10 0.00
ftv 9 74 0.76 1.18 0.0 0.53 0.00
bwt 10 74 2771.92 659.63 2775.5 2782.55 630.10min max range skew kurtosis se
low* 1 2 1 0.38 -1.88 0.06
age 14 35 21 0.55 -0.73 0.59
lwt 80 250 170 1.45 2.22 3.93
race* 1 3 2 1.23 -0.16 0.09
smoke* 2 2 0 NaN NaN 0.00
ptl 0 3 3 2.11 4.46 0.07
ht* 1 2 1 3.38 9.53 0.03
ui* 1 2 1 1.67 0.80 0.04
ftv 0 6 6 1.85 4.03 0.14
bwt 709 4238 3529 -0.28 0.23 76.68
类似于describe()
,该函数会把所有分类变量都会被当作数值变量处理。
R语言笔记-数值型变量的描述统计相关推荐
- R语言笔记④——数值摘要、缺失值、数据标准化、线性回归、多元线性回归和主成分分析
数据摘要 反映集中程度的函数 下面是R中反映中程度的函数 mean():均值 median():中位数 quantile():分位数 > a <- c(1,5,6,9,7,5,6,7,2, ...
- R语言将字符型(Character)变量转化为数值型(Numeric)
R语言将字符型(Character)变量转化为数值型(Numeric) 目录 R语言将字符型(Character)变量转化为数值型(Numeric) #基本语法
- R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置
R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置 目录
- R语言编程 第一讲 变量与赋值
R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...
- R语言笔记1:t检验和Wilcoxon检验
转自新浪博客,转载地址:http://blog.sina.com.cn/s/blog_427c24ae0102wg7n.html 1.t检验 数据是高血压患者治疗前后舒张压的变化,这个内容最熟悉不过了 ...
- R语言将数值类型转换为字符串类型
R语言将数值类型转换为字符串类型 目录 R语言将数值类型转换为字符串类型 R语言是解决什么问题的? R语言将数值类型转换为字符串类型 安利一个R语言的优秀博主及其CSDN专栏: R语言是解决什么问题的 ...
- R语言笔记-用tableStack汇总双变量分析结果
文章目录 预处理 ``tableStack()``用法 以紧凑形式呈现:``name.test=FALSE`` 呈现所有变量的基本信息:``by="none"`` 呈现多分类变量水 ...
- R语言ggplot2可视化分组变量下的数据分布(线条、色彩配置)、WVPlots包的ShadowHist函数比较分组下的数据直方图、ggplot2分面图facet_wrap可视化分组变量下的数据分布
R语言ggplot2可视化分组变量下的数据分布(线条.色彩配置).WVPlots包的ShadowHist函数比较分组下的数据直方图.ggplot2分面图facet_wrap可视化分组变量下的数据分布 ...
- JQuery源码-------JQuery中数值型变量的判断isNumeric
判断一个数值型变量的方法,在jquery中非常简单,只有一行代码. isNumeric: function( obj ) {// parseFloat NaNs numeric-cast false ...
最新文章
- conda安装qiime2-清华镜像源替换法解决安装失败
- 脑电分析系列[MNE-Python-10]| 信号空间投影SSP数学原理
- 建立随机矩阵,及生成新矩阵
- Asp.net常用技巧
- QT的QHistoryState类的使用
- 05_专家的快速入门、加载MNIST数据集、数据集切分和混淆、定义类的方式构建模型、选择优化器和损失函数、训练模型和测试模型准确率
- 枚举:如何正确使用name()和toString()方法
- c语言限制字符数,C语言中“不受限制”的字符串函数总结.pdf
- 亿佰特物联网开关电源模块:压电发声器驱动器
- 程序员1w2以下的,2020年就要面对现实了...
- python开发本地WEB项目
- 《Python编程:从入门到实践》学习笔记——第5章 if语句
- 十五个AI图像放大工具
- ABB机器人动作监控和无动作执行的使用
- 关于DANet注意力机制
- 获取谷歌浏览器Chrome缓存目录
- IDEA 出现问题:PSI and index do not match 解决方案
- lwip【4】 lwIP配置文件opt.h和lwipopts.h初步分析之一
- python 黑白棋_python-黑白棋游戏需要说明
- 随机场(Random field)
热门文章
- 关于爱国者***的追踪报道[转]
- java imgui,发布使用 IMGui 基于 msys2 平台编写的软件
- 标准差计算机怎么按,如何使用计算机计算平均值及禁标准差
- (七)通过pygame来设置飞机大战中 敌机 的速度、位置等
- UVa 12112 - Iceman
- 常用英语口语句型100句
- 基于生成对抗网络的有遮挡人脸修复方法
- java excel 插入新行_POI ,Java 操作 Excel 實現行的插入(insert row)
- Web-app,一款简洁高效率绿色html编辑器-安卓软件
- JVM内存模型与内存溢出异常