管道函数(%>%)很简单

%>%来自dplyr包的管道函数,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存

%>%,该符号将左边的对象作为第一个参数传递到右边的函数中

直接上栗子??:library(data.table)
library(tidyr)
# 先虚构一数据框
set.seed(1)
date <- as.Date(‘2016-11-01‘) + 0:14
hour <- sample(1:24, 15)
min <- sample(1:60, 15)
second <- sample(1:60, 15)
event <- sample(letters, 15)
data <- data.table(date, hour, min, second, event)
head(data)[0:2]
##          date hour min second event
## 1: 2016-11-01    7  30     29     u
## 2: 2016-11-02    9  43     36     a
typeof(data)
## [1] "list"

------------------------------------------管道函数(%>%)很简单----------------------------------------------------
# 把date,hour,min和second列合并为新列datetime
# R中的日期时间格式为"Year-Month-Day-Hour:Min:Second"
#(一)(%>%) 合着写
dataNew <- data %>%unite(datehour, date, hour, sep = ‘ ‘) %>%unite(datetime, datehour, min, second, sep = ‘:‘)
dataNew
##                datetime event
##  1:  2016-11-01 7:30:29     u
##  2:  2016-11-02 9:43:36     a
##  3: 2016-11-03 13:58:60     l
##  4: 2016-11-04 20:22:11     q
##  5:  2016-11-05 5:44:47     p
##  6: 2016-11-06 18:52:37     k
##  7: 2016-11-07 19:12:43     r
##  8:  2016-11-08 12:35:6     i
##  9:  2016-11-09 11:7:38     e
## 10:  2016-11-10 1:14:21     b
## 11:  2016-11-11 3:20:42     w
## 12:  2016-11-12 14:1:32     t
## 13: 2016-11-13 23:19:52     h
## 14: 2016-11-14 21:41:26     s
## 15:  2016-11-15 8:16:25     o
# #(二)(%>%) 分步写
dataNew <- data %>%unite(datehour, date, hour, sep = ‘ ‘); dataNew
##          datehour min second event
##  1:  2016-11-01 7  30     29     u
##  2:  2016-11-02 9  43     36     a
##  3: 2016-11-03 13  58     60     l
##  4: 2016-11-04 20  22     11     q
##  5:  2016-11-05 5  44     47     p
##  6: 2016-11-06 18  52     37     k
##  7: 2016-11-07 19  12     43     r
##  8: 2016-11-08 12  35      6     i
##  9: 2016-11-09 11   7     38     e
## 10:  2016-11-10 1  14     21     b
## 11:  2016-11-11 3  20     42     w
## 12: 2016-11-12 14   1     32     t
## 13: 2016-11-13 23  19     52     h
## 14: 2016-11-14 21  41     26     s
## 15:  2016-11-15 8  16     25     o
dataNew %>% unite(datetime, datehour, min, second, sep = ‘:‘)
##                datetime event
##  1:  2016-11-01 7:30:29     u
##  2:  2016-11-02 9:43:36     a
##  3: 2016-11-03 13:58:60     l
##  4: 2016-11-04 20:22:11     q
##  5:  2016-11-05 5:44:47     p
##  6: 2016-11-06 18:52:37     k
##  7: 2016-11-07 19:12:43     r
##  8:  2016-11-08 12:35:6     i
##  9:  2016-11-09 11:7:38     e
## 10:  2016-11-10 1:14:21     b
## 11:  2016-11-11 3:20:42     w
## 12:  2016-11-12 14:1:32     t
## 13: 2016-11-13 23:19:52     h
## 14: 2016-11-14 21:41:26     s
## 15:  2016-11-15 8:16:25     o
# #(三)不用%>%也能写
dt<-unite(data,datehour, date, hour, sep = ‘ ‘)
dt
##          datehour min second event
##  1:  2016-11-01 7  30     29     u
##  2:  2016-11-02 9  43     36     a
##  3: 2016-11-03 13  58     60     l
##  4: 2016-11-04 20  22     11     q
##  5:  2016-11-05 5  44     47     p
##  6: 2016-11-06 18  52     37     k
##  7: 2016-11-07 19  12     43     r
##  8: 2016-11-08 12  35      6     i
##  9: 2016-11-09 11   7     38     e
## 10:  2016-11-10 1  14     21     b
## 11:  2016-11-11 3  20     42     w
## 12: 2016-11-12 14   1     32     t
## 13: 2016-11-13 23  19     52     h
## 14: 2016-11-14 21  41     26     s
## 15:  2016-11-15 8  16     25     o
dt2<-unite(dt,datatime,datehour, min, second, sep = ‘:‘)
dt2
##                datatime event
##  1:  2016-11-01 7:30:29     u
##  2:  2016-11-02 9:43:36     a
##  3: 2016-11-03 13:58:60     l
##  4: 2016-11-04 20:22:11     q
##  5:  2016-11-05 5:44:47     p
##  6: 2016-11-06 18:52:37     k
##  7: 2016-11-07 19:12:43     r
##  8:  2016-11-08 12:35:6     i
##  9:  2016-11-09 11:7:38     e
## 10:  2016-11-10 1:14:21     b
## 11:  2016-11-11 3:20:42     w
## 12:  2016-11-12 14:1:32     t
## 13: 2016-11-13 23:19:52     h
## 14: 2016-11-14 21:41:26     s
## 15:  2016-11-15 8:16:25     o
时间: 2024-10-08 11:48:15

管道函数(%>%)很简单的相关文章

轻松搞定Ajax(分享下自己封装ajax函数,其实Ajax使用很简单,难是难在你得到数据后来怎样去使用这些数据)

hey,guys!今天我们一起讨论下ajax吧!此文只适合有一定ajax基础,但还是模糊状态的同志,当然高手也可以略过~~~ 一.概念 Ajax(Asynchronous Javascript + XML(异步JavaScript和XML )) 二.效果 实现无刷新效果,向后台异步的取数据(不是只有AJAX才能实现这样的效果的哦,如img , script标签中的src属性也可以实现一样的效果,可以自己尝试一下哦) 三.本质 可能我们在学习过程中会觉得ajax好难,我也是这样过来的,我觉得是我们

其实Unix很简单

很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验.在绝大多数时候,我发现问这些问题的朋友都有两个特点: 1)对Unix有畏难心理,对其没有信心: 2)喜欢用拿Windows来和Unix做比较.http://hovertree.com/menu/unix/ 这两种特点就像两个“心理暗示”,暗示着自己Unix很不好学,暗示着Unix很糟糕,不如Windows好.于是,自己也就被自己的这种长期的“暗示”所催眠了.因为,从一

VC开发多语言界面 多种方法(很简单) 有源码

(需源码先留邮箱)先上图 1.通过遍历 得到所有控件ID号与TEXT,得到一个中文语言配置文件 void CVV_485Dlg::getCaptionForWindow() //做程序时用,其它时间不用 { //枚举对话框中所有组件 CWnd *pCtrl = GetWindow(GW_CHILD); while(pCtrl!=NULL) { UINT ctrlID = pCtrl->GetDlgCtrlID(); // setControlCaption(pCtrl,ctrlID); CStr

字符编码知识简介和iconv函数的简单使用

字符编码知识简介和iconv函数的简单使用 字符编码知识简介 我们知道,在计算机的世界其实只有0和1.期初计算机主要用于科学计算,而我们知道一个数,除了用我们常用对10进制表示,也可以用2进制表示,所以只有0和1就可以进行科学计算,但是为了便于计算,大神们还是向计算机中引入的编码,比如通常我们用补码表示一个负数.所以编码这个东西,是从一开始就伴随着计算机的.到现在,我们的生活已经完全离不开计算机了,计算机也不仅仅用于科学计算了,更多地应用系信息处理.那计算机怎样表示与我们生活息息相关的事物呢,一

函数的简单调用

1 #include<stdio.h> 2 #include<string.h> 3 #include<windows.h> 4 int Move(); 5 int Bulid(); 6 int Paint(); 7 int main () 8 { 9 Move(); 10 Bulid(); 11 Paint(); 12 13 return 0; 14 } 15 int Move() 16 { 17 printf("调用搬运函数\n"); 18 }

linux0.11内核fork实现分析(不看不知道,一看很简单)

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

Swift学习之函数和简单地控件的创建

 今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的更多,更加的踏实才行,因为我知道我的基础不如别人,目标和动力也和他们不同,看着大家有的说是只要找到工作就好,还有的说只要每个月够花就好,担着真的是大家来这里学习的最终目的吗,如果是这样,真的还不如随便找个工作将就一下,也比这个整天做到这好多了,还交了那么贵得费用,所以何必呢,既然选择了这条路,既然当

Swift入门很简单

Swift入门很简单 <Swift入门很简单>清华大学出版社,全书共16章,分为3篇. 第 1 篇  介绍了Swift开发环境的搭建.Swift基本应用程序的创建.数据类型.语句.表达式.字符串.集合类型.程序控制结构.函数和闭包等内容: 第 2 篇  介绍了类.继承.枚举类型.结构.构造器.析构方法.扩展和协议等内容: 第 3 篇  介绍了自动引用计数.运算符重载和泛型等内容. 试读下载地址:http://pan.baidu.com/s/1mg0ytVq 随书工具下载地址:http://pa

很简单的JQuery网页换肤

现在介绍网页换肤的例子已经数不胜数,自己也没有仔细研究过,刚搞遇到类似这个问题,网上查了资料解决了问题,感觉很有用,就记录了下来和大家分享一下.效果很简单,我就直接讲怎么使用的. 其中用到了jquery.cookie.js 首先是html代码: <div id="header_demo"> <a id="logo" href="#">Rainweb</a> <ul id="skin"&