Magrittr包:简化你的R代码
来源 | R友舍
1,R Coder的福音
Magrittr包实现了UNIX下的流式操作,即在R的编程环境下,也可以实现UNIX下的|
管道符的操作,如下:
`> iris[,1:4] %>%
colSums`
得到如下结果:
Sepal.Length Sepal.Width Petal.Length Petal.Width 876.5 458.6 563.7 179.9
管道操作真的减少了代码量,节省时间,对于R CODER来说一个福音。再也不用没操作一次就赋值一个变量了。
2,下面简单介绍四种常用的管道操作:
%>%
:常用的管道操作就是
%>%
了,见上面的例子。它的作用就是把当前操作的结果,传递给下一步,然后继续操作,继续传递……这个基本满足60%的R CODER的需求了吧。
%$%
:当然,在特殊的情况下,比如生成新的变量,下一个操作需要用到变量的name,需要把这个变量传递下去,则需要
%$%
;比如:
data.frame(z = rnorm(100)) %$% ts.plot(z)
,这个地方,ts.plot()
需要使用z
这个name,所以需要把它传递下去,如果用%>%
则不能实现这个功能。
%T%
:在更特殊的情况下,比如Plot等函数不能产生数据的结果,比如在
a->plot->c
过程中,plot不传递数据给c,但是我们还想在C用a的数据,怎么办?这个时候下,就需要
%T>%
的操作符,如下:
rnorm(200) %>% matrix(ncol = 2) %T>% plot %>% # plot usually does not return anything. colSums
%<>%
:还有一种,是左边的数据可以被更新,如下:
x <- rnorm(100) x %<>% abs %>% sort
,从这个可以看到,x
是经过了abs
和sort
之后的,最后的结果是排序后正的随机数。
3,管道操作后数据的调用
除%T>%
和%$%
可以使用变量以外,%>%
之后的数据使用也很重要。使用.
(dot)作为变量使用,比较方便,如下:
x %>% f is equivalent to f(x)
:x %>% f(y) is equivalent to f(x, y)
:y %>% f(x, .) is equivalent to f(x, y) and z %>% f(x, y, arg = .) is equivalent to f(x, y, arg = z)
:1:10 %>% {c(min(.), max(.))} is equivalent to c(min(1:10), max(1:10)).
:a %>% (function(x) x^2), and 1:10 %>% (call("sum"))
还可以直接赋值新变量,比如
iris[1:4,] %>% { my_data <- . colSums(my_data) }
有了上述介绍的管道操作功能,基本就可以满足日常的数据的处理了。
最担心的事情终于发生了,APP已经可以一键“脱掉”你的衣服了
我造的假我自己打,Adobe推出“反PS”
李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”
Magrittr包:简化你的R代码相关推荐
- R语言观察日志(part20)--包的组件之R代码
学习笔记,仅供参考,有错必纠 文章目录 R代码 R代码的工作流程 组织函数 代码风格 对象名称 空格 余下的请看R语言观察日志(part16)--Google's R Style Guide 顶层代码 ...
- R语言中的管道操作——magrittr包
R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...
- R 语言管道符(magrittr包)
R语言管道符 R包 Package: magrittr介绍 Package: magrittr安装 常用管道操作符的使用 向右操作符:%>% 向左操作符:%T>% 解释操作符(属性操作符) ...
- 把函数包起来就是一个R包 - 完整开发指南
生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...
- 独家 | 一文读懂最大似然估计(附R代码)
作者:阿尼·辛格 翻译: 陈之炎 校对:丁楠雅 本文约4200字,建议阅读10+分钟. 本文将研究MLE是如何工作的,以及它如何用于确定具有任何分布的模型的系数. 简介 解释模型如何工作是数据科学中最 ...
- 手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)
作者:ANKIT CHOUDHARY 翻译:王雨桐 校对:丁楠雅 本文约3000字,建议阅读12分钟. 本文将通过拆解Prophet的原理及代码实例来讲解如何运用Prophet进行时间序列预测. 简介 ...
- 机器学习算法清单!附Python和R代码
来源:数据与算法之美 本文约6000字,建议阅读8分钟. 通过本文为大家介绍了3种机器学习算法方式以及10种机器学习算法的清单,学起来吧~ 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人 ...
- 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
10 种机器学习算法的要点(附 Python 和 R 代码)(转载) from:https://zhuanlan.zhihu.com/p/25273698 前言 谷歌董事长施密特曾说过:虽然谷歌的无人 ...
- R语言-解决问题:程辑包‘xxx’是用R版本3.3.4 来建造的
用R的时候会碰到这种情形: warning :程辑包'xxx'是用R版本3.3.4 来建造的 尽管R这样提示,但是不影响这个包的使用.因此是可以继续用的,只是它会有这样的提示而已. 出现这种警告的原因 ...
- 机器学习算法一览(附python和R代码)
机器学习算法一览(附python和R代码) 来源:数据观 时间:2016-04-19 15:20:43 作者:大数据文摘 "谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能 ...
最新文章
- android 如何获得activity的view对象,Android的Activity 、 Window 、 View之间的关系
- 图像缩放算法_技术专栏|基于无人机LK光流算法的适用性及其优化方法探究
- 4进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()
- 字符串转换成java对象然后通过@RestController返回json对象
- linux c实现线程超时退出,c – 如何在另一个线程的超时内唤醒select()
- C语言课后习题(56)
- js 使用replace替换、全部替换、替换动态数据方法
- Tensorflow源码编译
- dll的基址与对应的lib文件
- 把图片url 伪静态 php,php使动态URL标签链接转成伪静态
- Unity渲染管线详解
- sop流程图模板_SOP模板-标准操作流程编写程序.doc
- itest考试切屏能检测出来吗_itest考试作弊怎么检测
- gorm中一对一,多对多关系
- 微信支付可能改变的六大行业
- 王者荣耀又开始“神仙”操作,全新的神仙英雄在体验服上线!
- Android开发—简单的图片浏览器
- Vue的模板语法及案例
- string.h头文件
- 【Lintcode】1367. Police Distance