热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

R与点("."),"〜"和管道(%>%)运算符的组合

如何解决《R与点("."),"〜"和管道(%>%)运算符的组合》经验,为你挑选了1个好方法。

我一直在寻找很多答案,但我仍然无法完全理解它们.例如,最明显的一个(在这里),其中包括(1,2,3)给出了具体的实例对点的各种用途,但我不能在这里理解,例如,它的应用:

car_data <- 
  mtcars %>%
  subset(hp > 100) %>%
  aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
  transform(kpl = mpg %>% multiply_by(0.4251)) %>%
  print

#result:
  cyl   mpg  disp    hp drat   wt  qsec   vs   am gear carb    kpl
1   4 25.90 108.0 111.0 3.94 2.15 17.75 1.00 1.00 4.50 2.00 11.010
2   6 19.74 183.3 122.3 3.59 3.12 17.98 0.57 0.43 3.86 3.43  8.391
3   8 15.10 353.1 209.2 3.23 4.00 16.77 0.00 0.14 3.29 3.50  6.419

上面的代码来自magrittr中对%>%的解释,其中我也试图理解管道运算符(我知道它给你以前计算的结果,但是aggregate当它混合时我在代码行中迷路了).,并%>%在同一个功能内.

所以,我无法理解上面的代码是什么.我有结果(我把它放在上面).但我不知道它是如何达到那个结果的,特别是aggregate代码行,它使用点和~符号.我知道这~意味着"所有其他变量",但它对点的意义是什么?它有另一种含义或应用吗?管道操作员在特定功能中的作用是什么?



1> MrFlick..:

该行使用.三种不同的方式.

         [1]             [2]      [3]
aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2))

一般来说,您将管道中的值传递到特定位置的函数,.但有一些例外.一个例外是.在公式中.该~用于创建在R.式中的管不会改变式的意义,所以它的行为就像它会不发生任何转义.例如

aggregate(. ~ cyl, data=mydata)

这只是因为aggregate需要左右两侧的公式.因此,.[1]仅仅意味着"数据集中的所有其他列." 这种用法与magrittr完全无关.

.[2]是真实传递中作为管的值.如果你有一个plain .作为函数的参数,那就是那里的值.因此,结果subset()将转到data=参数.

magrittr库还允许您使用.变量定义匿名函数.如果你有一个以a开头的链.,它被视为一个函数.所以

. %>% mean %>% round(2)

是相同的

function(x) round(mean(x), 2)

所以你只是用.at 创建一个自定义函数[3]


推荐阅读
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 这篇文章主要讲解了“怎么用Python写一个电信客户流失预测模型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入, ... [详细]
  • 【精读】Numpy详解
    (给机器学习算法与Python学习加星标,提升AI技能)Numpy是一个Python库模块,在Python编程中用于科学计算 ... [详细]
  • 我打算在两个进程之间建立一条管道:父进程和子进程。父进程派生子进程,并使用ex ... [详细]
  • Iamtryingtolearnhowtousethepipe()commandinC,andtryingtocreateatestprogramtodupl ... [详细]
  • pandas管道函数pipe
    1.概述在操作Series或者DataFrame级别数据时,例如修改、删除等,需要用到一些特别的函数,常用的有下面几个: ... [详细]
  • fork是pythonlinux下os模块下的一个方法,用来创建一个子进程。今天遇到这个问题,所以找文章来稍微了解一下。以下来自http:www.mye ... [详细]
  • 我将io与GOmultipart一起使用将文件上传到本地服务器,并且此功能每次都失败。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Givenasetofdistinctintegers,nums,returnallpossiblesubsets.Note:Thesolutionsetmustnotcontai ... [详细]
author-avatar
lou123456_541
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有