当前位置:网站首页>tidyverse笔记——管道函数
tidyverse笔记——管道函数
2022-07-31 05:39:00 【高冷现充】
管道函数
管道函数无疑是R中最为强力和有趣的发明之一,事实上,在shell编程中我也见过管道函数,管道函数于其说是函数,更不如说是一种方法,一种思想。
管道函数
- 符号表示:
%>%
- 快捷键:
cirl+shift+m
- 包含在
magrittr
包中 - 虽然不包含在 tidyverse 包中,但 tidyverse 会自动加载
- 最明显的一个优点是:不必为你的中间变量创建R对象,阅读性极高
它会将管道左边的数据作为管道右边的函数的第一个参数,数据作为参数传递下去,例如:
iris %>% group_by(Species)
%>% arrange(Sepal.Length)
%>% print(n = Inf)
第一个管道符,将鸢尾花数据作为参数传入 group_by 得到按物种分组的新的数据集;新的数据集紧接着又作为 arrange 的第一个参数按照花萼长度进行排序 ;最后将数据全部显示出来,等价写法为
temp <- group_by(iris, Species)
temp <-arrange(temp, Speal.Length)
print(temp, n = Inf)
rm(temp)
显然,用上管道符后的阅读体验是非常好的,一个管道符一次操作。而且等价写法中我还得删除了临时对象temp
不适合用管道函数的情形
参照 R for Data Science,里面是这么说的
- 管道步数过多时不用,主要原因在于不方便调试。比较合理的做法是适当选择每次操作的步数,得到一些具有阶段性意义的中间变量。
- 具有多个输入和输出时不用,这个显而易见
- 管道符适合线性操作,一步一步。如果是一些“非线性”操作,管道函数将变得无力
边栏推荐
猜你喜欢
随机推荐
小实战项目之——吃货联盟订餐系统
2.(1)栈的链式存储、链栈的操作(图解、注释、代码)
CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti
浅析重复线性渐变repeating-linear-gradient如何使用
Zabbix入门
Hook API
Dart入门
数据库原理作业2 — JMU
【云原生】-Docker容器迁移Oracle到MySQL
实现二叉树的基本操作
【TA-霜狼_may-《百人计划》】美术2.3 硬表面基础
Zotero | Zotero translator插件更新 | 解决百度学术文献无法获取问题
全网首发!ADK To Win11PE(1)中文+包
群晖NAS配置阿里云盘同步
DDNS搭建
【云原生】-Docker安装部署分布式数据库 OceanBase
What is float?What is document flow?Several ways and principles of clearing floats?What is BFC, how to trigger BFC, the role of BFC
Skywalking安装部署
Oracle入门 05 - VirtualBox的虚拟机安装配置
引导过程和服务控制