揭秘dplyr::mutate()隐藏功能:一次性添加多列的5种高效写法

第一章:dplyr::mutate() 多列新增的核心机制

在数据处理过程中,经常需要基于现有变量生成新的列。`dplyr::mutate()` 提供了一种直观且高效的方式来实现这一目标,尤其擅长同时创建多个新列,并允许新列之间相互引用。

基本语法与执行逻辑

`mutate()` 函数按顺序计算每个新列的表达式,这意味着后定义的列可以引用前面刚创建的列。这种逐列计算的机制使得复杂的数据转换变得简洁清晰。

library(dplyr)

# 示例数据
df <- tibble(
  x = c(1, 2, 3),
  y = c(4, 5, 6)
)

# 同时新增多列,后列可引用前列
df %>%
  mutate(
    sum_xy = x + y,           # 新增和列
    mean_xy = (x + y) / 2,    # 平均值
    centered = sum_xy - mean(sum_xy)  # 中心化处理
  )
上述代码中,`sum_xy` 首先被计算,随后 `mean_xy` 和 `centered` 可直接使用它,体现了列间依赖的自然表达。

运算顺序的重要性

由于 `mutate()` 按书写顺序执行,列的定义顺序直接影响结果。若将依赖项置于被依赖项之前,则会报错。
  • 列按从上到下的顺序依次计算
  • 后续列可引用已定义的新列
  • 避免循环引用,如 a = b + 1, b = a + 1

与 transmute 的区别

与 `mutate()` 不同,`transmute()` 仅保留新生成的列,原始列会被丢弃。
函数保留原列用途
mutate()是新增列并保留原始数据
transmute()否仅保留新列,用于精简输出

第二章:基础到进阶的多列添加方法

2.1 单次mutate中并列赋值:最直观的多列生成

在数据处理中,使用单次 `mutate` 操作实现多列并列赋值,是提升代码可读性与执行效率的关键技巧。该方法允许在一次调用中同时创建多个新字段,避免重复遍历数据。
语法结构与示例

df %>% mutate(
  total = a + b,
  ratio = a / b,
  category = ifelse(total > 10, "high", "low")
)
上述代码在一次 `mutate` 中生成了三个新列:`total`、`ratio` 和 `category`。所有计算基于当前行数据,并共享上下文环境。
优势分析
  • 减少管道操作次数,提升运行性能
  • 增强逻辑集中性,便于维护与调试
  • 支持列间依赖引用,如后定义列可使用前一列结果

2.2 利用向量化函数批量构造变量:提升代码简洁性

在数据处理中,频繁使用循环构造变量不仅冗长,还易出错。向量化函数通过数组级操作替代显式循环,显著提升代码可读性与执行效率。
向量化操作的优势
  • 减少重复代码,提升维护性
  • 利用底层优化,加速计算过程
  • 更贴近数学表达,增强逻辑清晰度
实际应用示例
import numpy as np

# 批量生成标准化变量
data = np.array([10, 20, 30, 40])
norm_data = (data - data.mean()) / data.std()

# 向量化条件赋值
categories = np.where(data > 25, 'High', 'Low')
上述代码中,np.where 对整个数组进行条件判断,无需逐元素循环。参数说明:第一个参数为条件数组,第二个和第三个参数分别为真/假时的取值,返回同形状的结果数组。这种批量处理方式使变量构造更加高效简洁。

2.3 基于条件逻辑同时创建多个标志列:ifelse与case_when实战

在数据处理中,常需根据条件生成多个标志列。`ifelse()` 适用于简单二元判断,而 `case_when()` 提供更灵活的多分支支持。
基础语法对比
  • ifelse(test, yes, no):仅支持单一真/假分支
  • case_when():按顺序匹配多个逻辑表达式,可处理复杂场景
实战示例

library(dplyr)
data <- tibble(score = c(85, 90, 70, 60))
data %>% 
  mutate(
    grade = case_when(
      score >= 90 ~ "A",
      score >= 80 ~ "B",
      score >= 70 ~ "C",
      TRUE ~ "F"
    ),
    is_pass = ifelse(score >= 70, 1, 0)
  )
上述代码中,case_when 实现多级分类,按顺序评估每个条件;ifelse 快速生成二值标志列。两者结合可在一次 mutate 中构建多个逻辑相关的标志字段,提升代码可读性与执行效率。

2.4 使用数学与统计变换同步衍生指标列:理论与应用场景

在数据处理流程中,通过数学与统计变换可实时生成衍生指标列,提升数据分析的维度与深度。此类变换常用于特征工程、监控系统与实时决策场景。
常见变换方法
  • 标准化:将数据缩放至标准正态分布
  • 滑动窗口统计:计算均值、方差等时序特征
  • 对数/指数变换:缓解数据偏态分布
代码示例:滑动均值衍生列
import pandas as pd

# 模拟时间序列数据
df = pd.DataFrame({'value': [10, 12, 14, 13, 16, 18]})
df['rolling_mean'] = df['value'].rolling(window=3).mean()
上述代码基于前3个数据点计算移动平均,rolling(window=3)定义窗口大小,mean()执行统计操作,生成新列rolling_mean用于趋势分析。
应用场景对比
场景变换类型输出指标
金融风控Z-score标准化异常评分
IoT监测滑动方差设备稳定性指数

2.5 结合分组计算一次性添加聚合与差值列:group_by联动技巧

在数据处理中,常需按分组计算聚合值并生成差值列。通过 `group_by` 联动操作,可在一个链式调用中完成多列的添加。
核心实现逻辑
使用 `transform` 方法对分组结果进行广播,使聚合值与原始行对齐,便于后续差值计算。
import pandas as pd

# 示例数据
df = pd.DataFrame({
    'category': ['A', 'A', 'B', 'B'],
    'value': [10, 15, 20, 25]
})

# 一次性添加聚合与差值列
df[['mean_val', 'diff']] = df.groupby('category')['value'].transform(['mean', lambda x: x - x.mean()])
上述代码中,`transform(['mean', ...])` 返回一个 DataFrame,其中 `'mean'` 计算每组均值并广播至每行,而匿名函数计算原始值与组均值的偏差。
优势分析
  • 避免多次分组操作,提升性能
  • 保持原始数据结构完整性
  • 支持自定义函数灵活扩展

第三章:结合R语言特性高效扩展列

3.1 利用across()对多列批量操作并命名新列

在数据处理中,常需对多列执行相同操作并生成带新名称的结果列。across() 函数结合 dplyr 的 mutate() 可高效实现这一需求。
基本语法结构

df %>%
  mutate(across(
    .cols = starts_with("sales"),   # 选择列名以"sales"开头的列
    .fns = ~ .x * 1.1,              # 将每列值乘以1.1(如加价10%)
    .names = "{col}_adjusted"       # 新列命名为原列名加"_adjusted"
  ))
.cols 指定目标列,支持逻辑表达式或辅助函数(如 is.numeric);.fns 定义变换函数,可传入匿名函数;.names 控制输出列名格式,{col} 占位符自动替换为原始列名。
应用场景示例
  • 对多个数值列进行标准化处理
  • 统一修正日期格式
  • 批量创建标志变量

3.2 通过cur_column()动态响应当前列名实现智能赋值

在复杂的数据处理流程中,静态字段映射难以应对动态列结构。`cur_column()` 函数的引入,使得系统能够实时获取当前操作的列名,从而实现基于列名的条件判断与智能赋值。
动态列感知机制
该函数在行级处理过程中动态返回当前列标识,结合上下文环境进行逻辑分支控制。例如,在数据清洗阶段可根据列名自动匹配正则规则。
def transform(row):
    col = cur_column()
    if "email" in col:
        return row.strip().lower()
    elif "id" in col:
        return int(row) if row else 0
上述代码展示了根据当前列名自动选择清洗策略:对邮箱类字段执行去空格小写化,对 ID 字段强制转为整数并处理空值。
应用场景扩展
  • ETL 流程中动态类型转换
  • 审计日志记录字段操作痕迹
  • 配置化规则引擎驱动

3.3 结合tidyselect选择函数精准定位目标变量

在数据处理流程中,高效选择变量是提升代码可读性和维护性的关键。`tidyselect` 提供了一套直观的语法,支持通过名称、位置或条件表达式灵活筛选列。
常用选择函数示例
  • starts_with():匹配以指定字符串开头的列名
  • ends_with():匹配以指定字符串结尾的列名
  • contains():匹配包含特定字符的列名
  • matches():使用正则表达式进行模式匹配

library(dplyr)
data %>%
  select(starts_with("age"), ends_with("date"), contains("income"))
上述代码从数据框中选取列名以 "age" 开头、以 "date" 结尾或包含 "income" 的所有变量。`select()` 结合 `tidyselect` 语法,无需手动列举列名,极大提升了数据操作效率。

第四章:高级编程技巧与性能优化

4.1 使用:=动态构建列名:符号拼接与变量注入

在处理动态SQL或结构化数据转换时,:= 操作符常用于实现列的动态命名。它支持将变量值或表达式结果注入到列名中,实现灵活的字段映射。
符号拼接机制
通过字符串拼接与变量结合,可构造运行时列名。例如在Go模板或SQL生成器中:
colName := "price"
query := fmt.Sprintf(`SELECT SUM(value) AS %s := 'total_%s'`, colName, colName)
// 结果:SELECT SUM(value) AS price := 'total_price'
上述代码利用:=将原列名price重映射为带前缀的动态别名,适用于报表字段自动化生成。
变量注入场景
  • ETL流程中根据维度自动命名指标列
  • API响应字段按租户配置动态输出
  • 多语言环境下本地化列别名注入

4.2 在mutate中嵌套list-column实现结构化输出

在数据处理中,常需将复杂结构存储于单个列中。通过 `mutate` 结合 list-column 可实现结构化输出。
list-column 的构建方式
使用 `list()` 将多个原子向量或数据框封装为列表单元,便于嵌套存储。

library(dplyr)

data <- tibble(id = 1:2) %>%
  mutate(values = list(c(1, 2), c(3, 4)),
         meta = list(tibble(name = "A", type = "X"),
                     tibble(name = "B", type = "Y")))
上述代码中,`values` 存储数值向量,`meta` 存储小型数据框。每个列表元素对应一行,形成“列中列”结构。
应用场景与优势
  • 适合分组建模:每组拟合模型并存入 list-column
  • 支持延迟展开:使用 `unnest()` 按需展开嵌套结构
  • 提升代码模块化:将多层级结果整合于单一数据管道

4.3 避免重复计算:临时变量与链式传递的优化策略

在复杂的数据处理流程中,重复计算会显著降低系统性能。通过合理使用临时变量缓存中间结果,可有效避免冗余运算。
临时变量的应用
将频繁使用的计算结果存储在临时变量中,减少函数调用或表达式重复执行:
// 原始写法:多次调用 expensiveCalc()
if expensiveCalc() > 0 {
    result := expensiveCalc() * 2
}

// 优化后:使用临时变量
temp := expensiveCalc()
if temp > 0 {
    result := temp * 2
}
上述代码中,expensiveCalc() 只执行一次,显著提升效率。
链式传递中的优化
在方法链中,可通过提前计算并传递上下文对象,避免重复构建:
  • 缓存共享依赖对象
  • 传递已计算的状态值
  • 减少嵌套调用层级

4.4 处理大型数据集时的内存与速度权衡建议

在处理大规模数据时,内存占用与执行效率之间的平衡至关重要。盲目加载全量数据易导致OOM(内存溢出),而过度分片则可能引入显著的I/O开销。
流式处理降低内存压力
采用逐批读取方式可有效控制内存使用。例如,在Python中使用Pandas结合chunksize参数:
for chunk in pd.read_csv('large_data.csv', chunksize=10000):
    process(chunk)
该代码将CSV文件按每批1万行分块加载,避免一次性载入全部数据。chunksize值需根据单条记录大小和可用内存合理设定,通常在5,000至50,000之间权衡。
索引与缓存策略优化访问速度
  • 对频繁查询字段建立索引,加快过滤速度
  • 使用内存映射(memory mapping)技术延迟数据加载
  • 关键中间结果可序列化缓存,避免重复计算

第五章:总结与最佳实践建议

监控与告警机制的建立
在生产环境中,系统的可观测性至关重要。应部署 Prometheus + Grafana 组合实现指标采集与可视化,并通过 Alertmanager 配置关键阈值告警。
  • 定期采集服务响应时间、CPU 与内存使用率
  • 设置 P99 延迟超过 500ms 触发告警
  • 使用 Blackbox Exporter 检测外部端点可用性
配置管理的最佳方式
避免将敏感信息硬编码在代码中,推荐使用 HashiCorp Vault 或 Kubernetes Secrets 结合环境变量注入。
// 示例:从环境变量安全读取数据库密码
package main

import (
    "log"
    "os"
)

func main() {
    dbPassword := os.Getenv("DB_PASSWORD")
    if dbPassword == "" {
        log.Fatal("DB_PASSWORD 环境变量未设置")
    }
    // 使用密码连接数据库...
}
持续集成中的质量门禁
在 CI 流水线中嵌入静态分析与单元测试覆盖率检查,确保每次提交都符合质量标准。
检查项工具示例阈值要求
代码格式gofmt100% 符合
静态检查golangci-lint零严重警告
单元测试覆盖率go test -cover≥ 80%
灾难恢复演练策略
每季度执行一次完整的灾备切换演练,验证备份数据的有效性和恢复流程的可靠性。使用 Velero 对 Kubernetes 集群进行快照备份,并在隔离环境中还原验证。

相关推荐

使用R语言中的dplyr包中的mutate函数,可以方便地在数据框中创建新的数据列

总结起来,使用R语言中的dplyr包的mutate函数,我们可以轻松地在数据框中创建新的数据列。通过将两个数值变量相除,我们可以使用mutate函数创建一个新的数据列,并将结果存储在其中。使用R语言中的dplyr包中的mutate函数,可以方便地在数据框中创建新的数据列。接下来,我们将使用mutate函数来创建新的数据列。可以看到,新的数据列z成功地被添加到了数据框df中,并且每一行的值都是相应行的x除以y的结果。的形式计算x除以y,并将结果存储在名为z的新数据列中。最后,我们打印出更新后的数据框。

CyberWizarDD的博客 889

R语言学习笔记(2)——mutate()函数

今天要讲的函数是mutate()函数,翻译过来有转变,突变的意思,它的功能是增加新的变量并保持原有的变量。 mutate(xscj,zcj = rowSums(.[4:12])) 第一个变量是数据引用,要增加变量,必须有原始数据才能进行操作,不过这个函数要求的数据类型是dataframe类型,在一般的操作中,我们都会先打开文件,数据形式一般为dataframe xscj<-read.csv("F:/R语言学习课程/R/cjb.csv") mutate第二个参数就是给出新的变量,上例中代码

weixin_57198917的博客 1万+

《用 R 探索医药数据科学》目录(持续更新,已超 250 万字)|订阅前说明

我们重磅推出《用 R 探索医药数据科学》专栏!本文作为专栏【订阅后首读】的核心内容,堪称开启学习之旅的 “入门钥匙”,也是整个专栏最关键的一篇指引文。文中不仅完整呈现了专栏 9 大核心篇章 + 问答板块的详细目录,更囊括了订阅后必知的核心要点 —— 从阅读设备、实操工具的使用建议,到学习路径、更新规则的清晰说明,再到问题反馈、感悟记录的实用方法,一站式帮你摸清专栏框架、找准学习方向。建议各位订阅者务必认真阅读、吃透内容,这能让你后续的学习更高效、少走弯!

MD Code 1万+

mutate函数详解

是R语言dplyr包中的一个函数,用于在数据框中添加新的列或修改现有列。它允许你使用现有的列计算新列的值。

weixin_47634487的博客 3164

R数据分析:如何在R中使用mutate

因为最近搞毕业论文,有点忙,加上还有好多粉丝咨询,临近毕业更新就很少了。 今天就写一个非常简单的文章,敷衍一下吧,哈哈哈。 今天要写的就是数据清洗的函数mutate(),这个属于超级基本的内容哦,一般我们拿到数据最头疼应该就是清洗数据了,所以清洗数据的基础一定要牢牢掌握。 还有,如果你想成为一名合格的分析师,其实你只要精通清洗数据就够了,我这么说一点都不夸张。 一个简单数据清洗任务常常包括: 从数据中选择列 设置数据行 汇总数据 汇总数据(计算汇总统计信息) 排序数据 创...

Codewar的博客 2万+

实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码

本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。

weixin_42569329的博客 479

生信小白菜之关于mutate函数的一切

【代码】生信小白菜之关于mutate函数的一切。

yangyulu1998的博客 1111

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

揭秘dplyr中的隐藏利器:如何用group_modify实现复杂分组数据变换

掌握dplyr group_modify 函数,轻松实现复杂分组数据变换。适用于需对分组后数据结构进行自定义处理的场景,支持返回非标量结果,灵活高效。结合管道操作,代码简洁易读,是进阶数据处理的得力工具,值得收藏。

LogicPlex的博客 788

第二章 HART硬件设计实战 — 基于SD2057的低功耗调制解调器电路详解与选型指南

本文详细解析了基于SD2057芯片的HART协议低功耗调制解调器硬件设计。通过对比分析,阐述了SD2057在成本与性能上的优势,并重点拆解了其核心电路、外围元件选型、原理图绘制要点及PCB布局的实战技巧,为工业现场仪表的智能通信模块开发提供了完整的低功耗解决方案。

gan8painter的博客 423

【数电课程设计】---出租车计价器

文章目录1、任务要求2、方案3、收获 1、任务要求 2、方案 3、收获

LZY 1万+

揭秘dplyr中的rowwise函数:为何90%的数据分析师都用错了?

掌握dplyr的rowwise行操作正确用法,解决分组计算与逐行处理难题。适用于跨列运算、自定义函数应用,结合mutate和summarise实现高效数据转换。避免常见性能误区,提升代码可读性与执行效率,值得收藏。

FuncIsle的博客 1000

Windows 环境下 OpenClaw 的安装与千问大模型配置

为了不占用 C 盘空间,重装系统也不丢失配置,本文详细记录了如何将 OpenClaw 安装在非系统盘,比如D 盘,并对接阿里云 通义千问大模型的全过程。主要是利用 NVM 和 npm 进行安装,方便后续一键升级,配置具有免费额度的Qwen API,这个只需要在阿里云百炼注册一个账号就能获得免费额度。

博客 6538

卡方检验实战指南:分类变量关系验证的三步穿透法

卡方检验(chi-square test)是分析两个分类变量是否独立的基础统计方法,其核心原理基于观测频数与期望频数的偏差量化,通过Pearson残差和贡献度分解揭示驱动显著性的具体单元。该方法不依赖正态假设或线性关系,天然适配问卷选项、用户分群、医疗诊断等离散标签场景,技术价值在于以可解释的方式定位业务关键信号,而非仅输出p值。典型应用场景包括渠道转化归因、临床特征关联挖掘、地域行为差异诊断等。本文聚焦contingency table构建规范、chisq.test()参数工程化配置及结果三层穿透解读(统

aobu0171的博客 502

三、分区配置

rk3566/rk3568 修改分区

暮云星影的博客 514

双馈风机并网系统宽频振荡机理与抑制方法研究

双馈风机并网系统宽频振荡分析与抑制 摘要:本文研究了双馈风机(DFIG)接入弱电网引发的宽频振荡问题。通过建立DFIG并网系统阻抗模型,分析了锁相环带宽、电流环带宽等参数对阻抗特性的影响。研究揭示了DFIG与电网阻抗交互导致交截频率处相位差超过180°的振荡机理。提出基于锁相环优化的阻抗重塑抑制策略,采用电压补偿和陷波器改善系统稳定性。仿真结果表明,该方法能有效降低相位差约10°-168°,显著抑制宽频振荡。代码实现了阻抗建模、稳定性分析和抑制策略验证,为工程应用提供了理论依据。

huanghm88的专栏 319

阅读mutate源码学习dplyr

dplyr是R语言里面处理数据数据非常好使的包,但是最近使用它解决一些问题时遇到了瓶颈,并且搜到的教程都特别基础,所以我打算从源码的角度去找解决方案。 为了理解dplyr::mutate这个函数,我们需要借助一个实例,分别思考mutate(mtcars), mutate(mtcars, gear+carb)和...

weixin_34007291的博客 302

SAP Fiori Launchpad 自定义层文本翻译实战:精准修正 Tile、Catalog 与 Group 标题

SAP Fiori 项目中,入口层(tile/catalog/group)的翻译问题常被忽视,但其直接影响用户体验。与前端i18n不同,这些文本属于平台配置数据,需通过ABAP标准翻译流程(SE63)处理。关键步骤包括:使用/UI2/FLC定位Text ID和Configuration ID,根据前缀区分Main/Property WD Config Key,在SE63中锁定WDY_CONF_USERT2表对象进行翻译。操作时需注意使用系统源语言环境,翻译完成后可能需要清理缓存。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 171

R语言数据清洗实战(mutate多列操作全解析)

掌握R语言dplyr mutate新增多列技巧,高效实现数据清洗与特征工程。适用于批量计算、条件赋值等场景,支持链式操作与函数复用,提升代码可读性与执行效率。方法实用,值得收藏。

CompiWander的博客 1022

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

R语言——summarise和mutate函数

summarise()和mutate()是plyr包中的两个函数。 summarise()函数 用法: summarise(.data, ...) 参数: .data the data frame to be summarised ... further arguments of the form var = value mutate()函数 用法: mutate...

wangzhihao_2015的博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

dplyr包 mutate 和 transmute 函数

mutate()函数增加新变量并保留原变量;transmute()函数增加新变量并删除原变量,新变量覆盖原来重名变量。也可以设置变量值为NULL删除变量。 mutate 函数 # 定义测试数据框 data <- data.frame(x1 = 1:5, x2 = letters[1:5], x3 = 3) # 显示内容 5行3列 > data x1 x2 x3 1 1 a 3 2 2 b 3 3 3

neweastsun的专栏 3180

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

R语言【dplyr】——mutate() 可以创建与现有变量函数相关的新列。它还可以修改(如果名称与现有列相同)和删除列(通过将其值设置为 NULL)

参数【...】: 键值对。键名给输出结果的列命名。值可以是: 长度为 1 的向量,该向量的元素数量的整数倍必须是数据集的行数。 与当前分组(或整个数据集,如果未分组)长度相同的向量。 NULL,表示删除该列。 数据集或 tibble,用于在输出中创建多列。

whitedrogen的博客 1772

dplyr数据变换技巧:mutate函数创建新变量的实用指南

想要在R语言中轻松创建新变量和修改现有列吗?dplyr的mutate函数就是你的理想选择!🎯 作为数据操作语法的核心组件,mutate函数让数据变换变得简单直观,是每位R用户必备的强大工具。 ## 什么是mutate函数?🤔 mutate函数是dplyr包中最常用的数据变换函数之一,专门用于**创建新列**和**修改现有列**。它基于数据掩码技术,能够智能地处理分组数据,让复杂的数据操作变

gitblog_01182的博客 952

【R数据分析效率革命】:为什么90%的人都没用好mutate新增多列功能?

掌握R语言dplyr mutate新增多列技巧,提升数据处理效率。适用于批量计算、变量转换等场景,通过一行代码同时创建多列,简化操作流程,避免重复调用。灵活结合即时运算与函数应用,显著提高代码可读性与执行速度。R语言dplyr mutate新增多列的高效方法,值得收藏。

PixelShoal的博客 370

R语言中的dplyr包

介绍 dplyr是一个常用的用于数据清洗的R包,其中主要的函数有: select() 从数据中选择列 filter() 数据行的子集 group_by() 汇总数据 summarise() 汇总数据(计算汇总统计信息) arrange() 排序数据 mutate() 创建新变量 mutate()的使用方法 mutate(df, new_variable=existing_var的表达式,.keep = c("all", "used", "unused", "none"), .before = N

辉的博客 2798

[R]_使用mutate_all(),mutate_at(),mutate_if()操纵数据框的列

用R做数据清洗的人应该对mutate()不会陌生,这个函数用来增加列变量,非常好用,不过它的一些同胞mutate_all(),mutate_at(),mutate_if()知名度就没有那么高,但其实这几个也是很好用的函数,主要用于对列变量使用函数,修改列变量的值。三者区别如下 mutate_all()作用所有变量mutate_at()作用于选中的变量mutate_if()作用于按条件筛选后的变量 先建一个dataframe,因为直接rnorm的函...

吃过了没 8867
上一篇: PHP 7.1类常量public可见性全解析:构建可维护系统的基石技术
下一篇: 为什么你的readr读不出中文?:深入解析locale设置与fileEncoding参数的秘密
CodeWhim
博客等级 码龄1年 153粉丝 2003原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值