R语言实操记录——管道(|>, %>%, %T>%, %$% 和 %<>%)

R语言

R语言实操记录——管道(|>, %>%, %T>%, %$% 和 %<>%)



一、R自带的管道( |> )

在R4.1以上版本加入了原生管道操作符"|>",如同Linux中的管道作用一致,将左侧的输出结果传递给右侧命令。

二、R包magrittr提供的管道( %>%, %T>%, %$% 和 %<>% )

R包magrittr提供的管道功能就显得丰富了很多。
运用下列符号前需要先调用magrittr包

install.packages("magrittr")
library(magrittr)

2.1、%>% (向右操作符,forward-pipe operator)

  • 定义:把左侧的数据或表达式,传递给右侧的函数调用或表达式进行运行,可以连续操作。

在这里插入图片描述

2.2、%T>%(向左操作符,tee operator)

  • 定义:功能和 %>% 基本是一样的,只不过它是把左边的值做为传递的值,而不是这一步计算得到的值。
  • 使用场景:比如,你在数据处理的中间过程,需要打印输出或图片输出,这时整个过程就会被中断,用向左操作符,就可以解决这样的问题。

在这里插入图片描述

2.3、%$% (解释操作符,exposition pipe-operator)

  • 定义:%$%的作用是把左侧数据的属性名传给右侧,让右侧的调用函数直接通过名字,就可以获取左侧的数据。比如,我们获得一个data.frame类型的数据集,通过使用 ,在右侧的函数中可以直接使用列名操作数据。
  • 示例
data.frame(x=1:10,y=rnorm(10),z=letters[1:10]) %$% .[x>5,]

# 等同于

df<-data.frame(x=1:10,y=rnorm(10),z=letters[1:10])
df[df$x>5,]
  • 实现原理如下图所示,使用%$%把左侧的程序的数据集A传递右侧程序的B函数,同时传递数据集A的属性名,作为B函数的内部变量方便对A数据集进行处理,最后完成数据计算。

在这里插入图片描述

2.4、%<>% (复合赋值操作符,compound assignment pipe-operator)

  • 定义:%<>%复合赋值操作符, 功能与 %>% 基本是一样的,多了一项额外的操作,就是把结果写回到最左侧的对象(覆盖原来的值)。
  • 使用场景:比如,我们需要对一个数据集进行排序,那么需要获得排序的结果,用%<>%就是非常方便的。

在这里插入图片描述

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值