📲mutate():创建新列与列位置

type
Post
status
Published
date
Jul 25, 2025
slug
dplyr-mutate
summary
全面掌握 `dplyr::mutate()`:新增/修改列,并精确控制新列位置与原列保留策略,简化特征工程。
tags
R
dplyr
数据清洗
category
📈 R Visionary
icon
password
comment
Show
mutate()dplyr 中用于添加、修改或替换列的核心函数。从最新版起,它支持通过 .before.after.keep 参数,精准控制新列插入位置原始列的保留策略,助你快速构建干净的特征表。

1. 函数原型

参数
含义
...
一个或多个新列表达式(或对现有列的修改)
.before
新列插入到指定列之前(不可与 .after 同时使用)
.after
新列插入到指定列之后(不可与 .before 同时使用)
.keep
控制保留哪些原始列:• "all":保留所有(默认)• "used":仅保留表达式中用到的原列• "unused":保留未使用的原列• "none":只保留新列

2. 示例与场景

先定义示例数据:

2.1 默认行为:保留所有列

  • 说明:新增 double_score,默认在最后一列后追加,保留原 namescoreage

2.2 指定插入位置

  • score
    • name

      2.3 精细保留原列

      • 仅保留用到的原列score 会被用,nameage 会去除):
        • 只输出新列(完全丢弃原始列):
          • 保留未使用的原列(只保留 nameage):

            3. 高级技巧

            • 若要重排列,可在 mutate() 后链入 relocate()
              • 中间计算:用 .keep = "none" 只输出最终特征,避免临时列污染结果表。
              • 报告输出:结合 .before/.after,让表格列顺序更直观,便于导出报告。

              总结
              • .before/.after:精准插入新列;
              • .keep:按需保留原始列,提升特征工程清洁度;
              • relocate()select() 等组合,可轻松管理复杂数据框列顺序。
              掌握这些参数后,你的 mutate() 就不仅是“加列”,更是“整理整洁的特征表”!
               
              Prev
              select():灵活选择列
              Next
              count():快速计数分组频次
              Loading...
              Article List
              Evan の Logbook
              ✨ Updates
              🎨 Style Guide
              🧠 Creative Resources
              🗒️ Mind Notes
              🧭 Knowbase
              📘 SOPs
              🩺 Medical Research
              🛠️ Tech Chronicles
              💰 Fortune Blueprint
              📈 R Visionary
              📊 Statistics
              🖼️ BioVis