首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「R」数据操作(七):dplyr 操作变量与汇总

使用mutate()添加新变量 除了选择已存在的列,另一个常见的操作是添加新的列。这就是mutate()函数的工作了。 mutate()函数通常将新增变量放在数据集的最后面。...这些函数的一个关键属性就是向量化的:它必须使用一组向量值作为输入,然后返回相同长度的数值作为输出。我们没有办法将所有的函数都列举出来,这里选择一些被频繁使用的函数。...然后,当你使用dplyr动词对分组的数据框进行操作时,它会自动进行分组计算。...这个代码写的有点令人沮丧,尽管我们不关心中间变量(临时变量),但我们却不得不创造这些中间变量存储结果数据框。命名是一件非常困难的事情,它会降低我们分析的速度。...= min_rank(desc(dep_time))) %>% filter(r %in% range(r)) #> # A tibble: 770 x 20 #> # Groups: year

2.6K20

「R」dplyr 编程

这让 dplyr 代码有两个主要优点: 数据框的操作可以简洁地表达,因为你不需要重复输入数据框名称。...例如你可以这样写filter(df, x == 1, y == 2, z == 3)来代替df[dfx == 1 & df dplyr 可以选择以不同的方式计算结果与base R 相结合。...有两个主要缺点: 大多数dplyr参数不是透明。这意味着你不能用一个看似等价的对象代替一个在别处定义的值。...dplyr代码不明确,取决于在哪里定义了哪些变量, filter(df, x == y)可以等价于下面任意一个:df[dfx == dfy, ]df[dfx == y, ]df[x == dfy, ]df...幸运的是,dplyr 提供了克服这些挑战的工具。他们需要多一点打字,但少量的前期工作是值得的,因为他们从长远来看可以帮助你节省时间。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    R语言之 dplyr 包

    dplyr 包里处理数据框的所有函数的第一个参数都是数据框名。 下面以 MASS 包里的 birthwt 数据集为例,介绍 dplyr 包里常用函数的用法。...使用 select( ) 选择列 函数 select( ) 用于选择数据框中的列(变量)。 # 下面的命令选择数据框里面的 bwt、age、race 和 smoke 这 4 个变量组成新的数据框。...select(birthwt, bwt, age, race, smoke) 请注意,MASS 包里有一个同名函数 select( ),如果同时加载了 dplyr 包和 MASS 包,R 会默认使用较后加载的包里的函数...与 R/Rstudio 上不同,notebook 这里把它显示成了 A grouped_df: 189 × 10(而非 # A tibble: 189 x 10),实际它仍然包含 tibble(注意其中的...我们需要给这些中间变量命名,而且这些中间变量会保存在工作空间中占用内存。传递操作符 %>% 将该符号之前的对象传递给符号后面的函数并作为函数的第一个参数值。

    45020

    「R」dplyr 列式计算

    ❝在近期使用 「dplyr」 进行多列选择性操作,如 mutate_at() 时,发现文档提示一系列的 「dplyr」 函数变体已经过期,看来后续要退休了,使用 across() 是它们的统一替代品,所以最近抽时间针对性的学习和翻译下...原文来自 [dplyr 文档](Column-wise operations • dplyr (tidyverse.org "dplyr 文档")) - 2021-01❞ 同时对数据框的多列执行相同的函数操作经常有用..._at() 函数是 「dplyr」 中唯一你需要手动引用变量名的地方,这让它们比较奇怪且难以记忆。 为什么过了这么久才发现 across()?...这是由 base R 提供的,但它并没有很好的文档,我们花了一段时间才发现它是有用的,而不仅仅是理论上的好奇。 我们可以使用数据框让汇总函数返回多列。...我们可以使用没有外部名称作为将数据框列解包为单独列的约定。 你如何转移已经存在的代码?

    2.4K10

    R tips:dplyr编程

    dplyr的函数由于使用tidy evaluation(R中的一种非标准执行(NSE)实现方式)的方法,可以使得其具有更好的易用性:变量不需要绝对引用和引号包裹。...根据使用的NSE的类别不同,dplyr的函数可以分为两类: data masking:arrange(), count(), filter(), group_by(), mutate(), summarise...根据所用的NSE的类别,需要区别对待dplyr函数的编程。 Data masking 如果想要操作的数据变量名称来源于环境变量,那么使用特殊的指代词.data来完成。...原因在于R的参数是 lazily evaluated,也就是说直到使用此参数前,这些参数并没有实际值(实际值也就是实参),而只有一个获取其实际值的方法(promise)。...:https://dplyr.tidyverse.org/articles/programming.html

    1.2K30

    R语言第二章数据处理⑦dplyr包(2)列处理目录列名

    如果你有日期列,你可以加载lubridate包,并使用is.POSIXt或is.Date。...select_all / if / at函数需要将函数作为参数传递。 如果你必须添加任何否定或参数,你必须将你的函数包装在funs()中,或者在重新创建函数之前添加波形符。...按逻辑表达式选择列 实际上,select_if允许您根据任何逻辑函数进行选择,而不仅仅基于数据类型。 例如,可以选择平均值大于500的所有列。...为避免错误,您还必须仅选择数字列,您可以提前执行此操作以获得更简单的语法,也可以在同一行中执行。...格式化所有列名 select_all()函数允许更改所有列,并将函数作为参数。如果想以大写形式获取所有列名,可以使用toupper(),同样可以使用小写tolower()。

    1.8K40

    Day6-学习dplyr_R包

    Day6-学习dplyr_R包加载包library(dplyr)示例数据直接使用内置数据集iris的简化版:test dplyr五个基础函数1....mutate(),新增列2.select(),按列筛选,列名列号都可以.select(数据框,列号/列名)3.filter()筛选行filter(数据框,列名==想筛选的值的行)4.arrange()...,按某1列或某几列对整个表格进行排序arrange(数据框, 排序的列名),desc从小到大排序参数5.summarise():汇总正在上传图片...dplyr两个实用技能1:管道操作 %>% (cmd.../ctr + shift + M)2:count统计某列的unique值dplyr处理关系数据1.內连inner_join,取交集2.左连left_join3.全连full_join4.半连接:返回能够与...y表匹配的x表所有记录semi_join5.反连接:返回无法与y表匹配的x表的所记录anti_join6.简单合并:bind_rows()函数需要两个表格列数相同,而bind_cols()函数则需要两个数据框有相同的行数

    11310

    R语言基于dplyr实现数据快捷操作

    R语言在处理大数据方面一直是被人诟病的地方,那么有人就为R语言打造了一个dplyr包可以实现高效的数据预处理,减少内存的消耗,提升处理效率。今天就给大家详细看下这个包的具体功能。...实例: library(dplyr) mtcars <- as_tibble(mtcars) ? 2. arrange 对数据集进行整体基于单列或者多列进行排序。...5. mutate 为数据集增加新的变量。实例: df %>% mutate(z = x + y, z2 = z ^ 2) ? 6. pull 输出单个变量。 7. relocate改变列之间排序。...可以直接填入变量名,也可以直接用列号,或者更深一层添加功能函数:start_with(以什么开头的变量),where(什么要求的变量)实例: iris %>%select(starts_with("Petal...16. across 针对某一列进行操作,两个参数:第一个为列名,第二个为操作函数。

    1.5K40

    R语言进阶笔记3 | dplyr常用函数介绍

    dplyr介绍 管道符%/% 管道符在Rstudio中快捷键是Ctrl + Shift + M,打印出来是%/%,它可以将前面的结果传递到后面作为参数 ?...比如 sum(c(1:10))可以写为c(1:10) %/% sum(),即%/%将c(1:10)作为参数传递给了sum()函数。...❝❝飞哥注:这个符号,在RStudio中用着特别方便,而且少了很多中间变量,代码更加清晰和简洁。 ❞❞ mutate()函数 这个函数,可以在对列赋值,更改。...22.5 4 Pusa 1932 18.0 5 Pusa 1932 22.5 6 Pusa 1933 37.5 数据框中,用到的方法需要用c()定义为一个向量,然后还要加引号,没有mutate简洁,R中的...merge函数,dplyr中是join函数,包括: left_join # 以左边为参考合并 right_join # 以右边为参考合并 inner_join # 以交集合并 full_join #

    1.3K10
    领券