专栏首页优雅R「R」R4.1新特性:管道符号|>与匿名函数构造\(x)

「R」R4.1新特性:管道符号|>与匿名函数构造\(x)

R4.1版本近期推出,对于用户而言最直接的2个新特性是:

  1. 新增内置管道符号|>
  2. 新增匿名函数构造方法\(x)

目前不同平台的安装包已经可以通过CRAN下载了,国内推荐清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/CRAN/

安装后进入R我们可以简单测试下这两个特性:

> 1:10 |> summary()
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 
> sapply(1:10, \(x) {x+1})
 [1]  2  3  4  5  6  7  8  9 10 11

值得注意的是匿名函数构造中\需要与括号连用,否则会报错:

 > sapply(1:10, \x {x+1})
Error: unexpected symbol in "sapply(1:10, \x"

由于新的管道符号与%>%略有不同,后者已经存在了大量的代码,代码风格迁移将在一两年内存在。另外,目前RStudio还没有默认插入新管道符号的快捷方式。根据我在RStudio官方仓库issue的检索和阅读,hadley推荐通过设置来让用户决定使用哪一种管道符号,默认快捷键保持不变,该方案已经被采用,未来可期,讨论和实施见:

  • https://github.com/rstudio/rstudio/issues/8534
  • https://github.com/rstudio/rstudio/pull/8605

通过一番摸索,我发现RStudio每天都会自动发布一个最新版本,网址在https://dailies.rstudio.com/。下载安装后我发现已经可以通过设定进行管道符号的切换:

试用后没有问题,Nice!

需要注意这里的新版本不一定稳定,请根据自己的需要判断后再安装。

本文分享自微信公众号 - 优雅R(elegant-r),作者:王诗翔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Rstudio 1.4版本更新介绍

    因为R4.1做了大更新,之前的Rstudio对R4.1新增加的特性没有支持到位。在最新的Rstudio已经到位了。如果本来打算使用R4.1的同学们,现在可以下载...

    庄闪闪
  • [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口

            比如接收双参数的,有 Bi 前缀, 比如 BiConsumer<T,U>, BiFunction<T,U,R> ;

    noteless
  • Julia(函数)

    在Julia中,函数是一个将参数值元组映射到返回值的对象。从函数可以更改并受程序全局状态影响的意义上讲,Julia函数不是纯数学函数。在Julia中定义...

    云深无际
  • 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等。

    九州暮云
  • Java8 Lamdba表达式及Stream详解

    在计算机编程中,匿名函数(函数文字,lambda抽象或lambda表达式)是未绑定到标识符的函数定义。匿名函数通常是传递给高阶函数的参数,或者用于构造需要返回函...

    AWeiLoveAndroid
  • Lambda表达式

    这里我们添加了一些自定义代码到 Schedule 监听器中,需要先定义匿名内部类,然后传递一些功能到 onSchedule 方法中。

    一觉睡到小时候
  • 通俗易懂的讲解 lambda 表达式

    链接 | my.oschina.net/u/4006148/blog/3078359

    挨踢小子部落阁
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    牧云云
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    程序员宝库
  • 走近 Python (类比 JS)

    Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 ...

    小莹莹
  • 基础语法_Haskell笔记1

    Haskell是一种纯函数式语言(purely functional programming language),其函数式特性的纯度没有争议

    ayqy贾杰
  • Python 十大奇葩语法

    本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会使代码看上...

    华章科技
  • 一起来学matlab-matlab学习笔记13函数 13_2 匿名函数

    本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面...

    演化计算与人工智能
  • 细数 Python 十大奇葩语法

    导读:Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。

    CDA数据分析师
  • 【Python】Python知识点总结

    字典{key:value,key:value},dict(key=value,key=value):

    keloli
  • 【Java8新特性】Lambda表达式基础语法,都在这儿了!!

    Lambda表达式在Java语言中引入了 “->” 操作符, “->” 操作符被称为Lambda表达式的操作符或者箭头操作符,它将Lambda表达式分为两部分:

    冰河
  • 浅谈lambda表达式<最通俗易懂的讲解>

    lambda体中调用方法的参数列表和返回值类型,要和函数式接口中抽象方法的参数列表和返回值类型保持一致。

    Java编程指南
  • Java Review (十六、面向对象----Lambda 表达式)

    当使用 Lambda 表达式代替匿名内部类创建对象时, Lambda 表达式的代码 块将会代替实现抽象方法的方法体, Lambda 表达式就相当一个匿名方法。

    三分恶
  • Dart的语法详解系列篇(二)-- 类与函数八、Dart的类与函数

    上一篇主要讲了数据类型、运算符、流程语句等,由于文字太多,我就把剩下的内容分开写一篇文章。 这一篇我们讲Dart的类与函数,内容较多,希望大家可以耐心看完。我...

    AWeiLoveAndroid

扫码关注云+社区

领取腾讯云代金券