r语言必学的十个包肖凯_30 天学会R DAY 14:R语言必学包dplyr
原标题:30 天学会R DAY 14:R语言必学包dplyr
第14天 R语言必学包dplyr
R语言非常讲究数据的整理,我们在7-13天的R语言学习内容中,着重都是关于R语言的整理,各种方法对数据进行整理,查看,对变量进行转换。dplyr包,主要也用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度。这个包对数据处理的方式相对之前的方法,更加简单,是医学数据分析必须要掌握的包。
dplyr包存在着上百个函数来帮助进行数据的整理,由于篇幅的关系,本文对主要的函数进行介绍,包括下述五个函数用法:
• 筛选: filter()
• 排列: arrange()
• 选择: select()
• 变形: mutate()
• 汇总: summarise()
• 分组: group_by()
• 合并:join()
首先,安装和导入dplyr
install.packages("dplyr")
library(dplyr)
导入之前数据集
t1
t2
str(t2)
str(t1)
1 筛选:filter()
按给定的逻辑判断筛选出符合要求的子数据集,之前我们已经通过大量的方法介绍过子集产生的方法,而filter()方法则更直接。
#产生t11数据集,SBP收缩压>=140的子集
t11=140)
#产生t11数据集,SBP收缩压>=140且DBP>=90舒张压的子集
t12=140,DBP>=90)
# 产生t11数据集,SBP收缩压>=140或DBP>=90舒张压的子集
t13=140 | DBP>=90)
#产生t11数据集,SBP收缩压>=140且DBP>=90舒张压的子集
t14=140 & DBP>=90)
str(t11)
str(t12)
str(t13)
# 上述程序,如果用常规R语言,则要
t12=140 & t1$DBP>=90, ]
相对来说更为复杂。
#分类数据转换
t21
2 排列: arrange()
排序功能,我们之前也学过,比如order(). Arrange 方法其实也更简单。
#根据SBP从小到大进行排序
arrange(t1,SBP)
#根据DBP从大到小进行排序
arrange(t1,desc(DBP))
#根据SBP和DBP,从小到大进行排序,先排SBP,SBP相同时,再排DBP
arrange(t1, SBP, DBP)
#根据SBP和DBP,从大到小进行DBP排序,DBP相同时,再排从小到大根据SBP排序
arrange(t1, desc(DBP), SBP)
3 选择: select()
用列名作参数来选择子数据集,这个功能很有意思,虽然医学数据分析用的不多。
t15
t16
t17
t18
select ( ) 更多的参数设置如下表
4.变形: mutate()
对已有列进行数据运算并添加为新列,这个是非常重要的数据转换功能。
# 计算BMI指数
t19
# 可以同时产生多个变量
t110
mutate( )可以调用的函数很多,以下是部分函数
log(), log2(), log10(): 对值求 log;
lead(), lag(): 返回序列中当前位置前第几个值或后第几个值;
cume_dist(): 计算比当前值还小的值的比例, 相当于计算 density;
ntile():把数据分成若干块, 看每个数据在具体拿一个块;
cumsum(), cummean(), cummin(), cummax(), cumany(), cumall():计算和 (sum), 均值 (mean), 最小值 (min), 最大值 (max), 任何为真 (any), 所有为真 (all);
na_if():把特定地值转换为 NA;
coalesce(): 找出若干列中第一个不为 NA 的值;
if_else(): 向量化的 ifelse 函数的效果.
recode: 把一系列值转换为其他值
case_when: 多条件选择.
比如:
t111
t21
5 汇总: summarise()
summarise()函数以及衍生函数,包括summarise_all, summarise_at,summarise_if主要进行数据的统计描述。
一般情况下,它们需要同时调动以下等其它函数来共同完成。
min():返回最小值
max():返回最大值
mean():返回均值
sum():返回总和
sd():返回标准差
median():返回中位数
IQR():返回四分位极差
n():返回观测个数
n_distinct():返回不同的观测个数
first():返回第一个观测
last():返回最后一个观测
nth():返回n个观测
#求DBP的均数和中位数
summarise(t1, DBP_mean = mean(DBP), DBP_median = median(DBP))
#求DBP和SBP的总个数、均数和标准差,需要调用summarise_at 函数,var()函数,funs() 函数
summarise_at(t1, vars(DBP, SBP), funs(n(), mean, median))
#求定量变量数据的均数和标准差,需要调用summarise_if 函数,var()函数,funs() 函数
summarise_if(t1, is.numeric, funs(n(),mean,median))
#存在着缺失值的时候,计算定均数和标准差,需要调用summarise_at 函数,var()函数,funs() 函数
summarise_at(t1, vars(DBP, SBP),
funs(n(), missing = sum(is.na(.)),
mean(., na.rm = TRUE),
median(.,na.rm = TRUE)))
6 分组: group_by()
当对数据集通过group_by()添加了分组信息后,mutate(),arrange() 和 summarise() 函数会自动对数据库执行分组操作。
group_by()的功能类似于SPSS拆分文件夹的功能,十分地好用。
tt1
tt2
或者直接将上述两句整合成一句
tt3
tt3
7. 数据库合并join()
在之前的内容中,我们介绍过用rbind,cbind,merge等函数进行数据库合并,但利用join()函数,花样更多。
left_join(t1,t2)
right_join(t1,t2)
inner_join(t1,t2,by=c(“”))
full_join(t1,t2, by = c("first", "last"))
semi_join(t1,t2, by = c("first", "last"))
anti_join(t1,t2, by = c("first", "last"))
前4种属于变形连接(mutating joins),后2种属于过滤连接(filtering joins)。
semi-joins基于第二个数据集的信息来过滤第一个数据集的数据。anti-joins找出合并时哪些行不能匹配第二个数据集
8. dplyr 包其它重要函数
由于篇幅的关系,不再一一介绍dplyr 包的函数,这里可以介绍下,有兴趣者可以进一步学习,比如dplyr 包的重命名rename(), 数据集重新再抽样sample(),数据转换transmute()都是是否有用的函数。
DAY14的内容就介绍到这里!
最后,一个月就能学会R语言,你敢挑战一下吗?
想挑战的话,请加入R语言的交流群吧?(由于群规模限制,请先加入郑老师微信号注明R语言即可)
关注公众号,请点击“阅读原文”,即可获得30天学会R语言的所有讲义的百度网盘链接下载! (下载密码请关注公众号,发送“30天”即可)返回搜狐,查看更多
责任编辑:
r语言必学的十个包肖凯_30 天学会R DAY 14:R语言必学包dplyr相关推荐
- r语言必学的十个包肖凯_家长专栏自闭症儿童语言康复训练
自闭症是一种广泛意义上的发育障碍,在儿童当中较为常见.自闭症的一种重要表现就是语言能力障碍和表达能力障碍.语言又是建立人际关系.认识世界.表达情感的最主要方式和途径,自闭症儿童存在的语言障碍在某种程度 ...
- c语言中不带任何修饰符的浮点变量,江苏省计算机等级考试二级C语言笔试辅导题目...
<江苏省计算机等级考试二级C语言笔试辅导题目>由会员分享,可在线阅读,更多相关<江苏省计算机等级考试二级C语言笔试辅导题目(155页珍藏版)>请在装配图网上搜索. 1.1 江苏 ...
- R语言效用分析 ( 效能分析、Power analysis)确定样本量、假设检验与两类错误、pwr包进行效用分析 ( 效能分析、Power analysis)的常用函数列表
R语言效用分析 ( 效能分析.Power analysis)确定样本量.假设检验与两类错误.pwr包进行效用分析 ( 效能分析.Power analysis)的常用函数列表 目录
- R语言gganimate包创建可视化gif动图、可视化动图:、gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点
R语言gganimate包创建可视化gif动图.可视化动图:.gganimate包创建动态线型图动画基于transition_time函数.使用geom_point函数显示动画移动的数据点 目录
- R语言dplyr包的top_n函数返回dataframe或tibble的前N行数据、dplyr包的top_frac函数返回dataframe或tibble的前百分之N(N%)的数据
R语言dplyr包的top_n函数返回dataframe或tibble的前N行数据.dplyr包的top_frac函数返回dataframe或tibble的前百分之N(N%)的数据 目录
- R语言偏相关或者部分相关性系数计算实战:通过拟合两个回归模型、或者pysch包计算偏相关系数(Partial Correlation)、通过方差分析获得偏相关系数的F统计量(偏F检验、二型检验)
R语言偏相关或者部分相关性系数计算实战:通过拟合两个回归模型.或者pysch包计算偏相关系数(Partial Correlation).通过方差分析获得偏相关系数的F统计量(偏F检验.二型检验) 目录
- R语言可视化R原生plot函数与ggplot可视化结果组合、整合输出实战:原生R绘图plot函数可视化、ggplot2包可视化、R原生plot函数与ggplot可视化结果组合
R语言可视化R原生plot函数与ggplot可视化结果组合.整合输出实战:原生R绘图plot函数可视化.ggplot2包可视化.R原生plot函数与ggplot可视化结果组合 目录
- R语言根据日历周期处理时间序列数据(周、月、年等):使用xts包的apply.monthly函数和mean函数计算时间序列的月平均值(monthly)
R语言根据日历周期处理时间序列数据(周.月.年等):使用xts包的apply.monthly函数和mean函数计算时间序列的月平均值(monthly) 目录
- R语言根据日历周期处理时间序列数据(周、月、年等):使用xts包的apply.yearly函数和mean函数计算时间序列的年平均值(yearly)
R语言根据日历周期处理时间序列数据(周.月.年等):使用xts包的apply.yearly函数和mean函数计算时间序列的年平均值(yearly) 目录
最新文章
- 10.QML Qt Quick Controls 2之imagine style
- FD.io/VPP — GRE vNET
- Linux内核spin_lock与spin_lock_irq分析
- 岗位推荐 | 微软小冰团队招聘数据挖掘/算法工程师实习生
- 转行学Java,如何才能成为年薪50万的Java程序员呢?
- 关于LR录制时不能自动启动IE浏览器的解决方法
- 将涡轮增压器添加到JEE Apps
- 【论文翻译】学习新闻事件预测的因果关系
- Ubuntu16.04下codeblocks16.01安装,适用于不同的架构
- Java设计模式学习总结(13)——结构型模式之享元模式
- 字节流转字符流OutputStreamWriter、InputStreamReader,关闭流的方法
- 四、Angular新建组件和使用
- RDD和DataFrame和DataSet三者间的区别
- ELK 企业内部日志分析系统
- java textarea滚动条_Java Swing TextArea 滚动条和获得焦点
- Linux svn服务器自身回退版本
- 20160402系统集成管理工程师(test3)
- Keras入门级MNIST手写数字识别超级详细教程
- java三国鼎立,网页游戏三国鼎立(武三国)一键服务端带教程及修改说明
- 使用Python读取Windows注册表