dplyr包之变形: mutate()

本文介绍了在数据处理中使用mutate和transmute函数的区别。mutate用于添加新变量并保留原有变量,而transmute则只保留新创建的变量。通过mtcars数据集示例展示了两种操作的具体应用。

Description

Mutate adds new variables and preserves existing; transmute drops existing variables.

Mutate 增加了新的变量和保存现有;transmute 不保留现有变量。

使用方法

 mutate(mtcars, displ_l = disp / 61.0237)
    mpg cyl  disp  hp drat    wt  qsec vs am gear carb  displ_l
1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 2.621932
2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 2.621932
3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 1.769804
4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 4.227866
5  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 5.899347
6  18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 3.687092
7  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 5.899347
8  24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 2.403984

返回了数据框原本含有的数据

transmute(mtcars, displ_l = disp / 61.0237)
    displ_l
1  2.621932
2  2.621932
3  1.769804
4  4.227866
5  5.899347
6  3.687092
7  5.899347
8  2.403984

仅返回了变化的不保留原始的数据

05-26
### 关于 `mutate` 函数的概念及其在编程中的使用 在数据处理领域,尤其是涉及表格型数据的操作时,`mutate` 是一种常见的函数或方法名称。它通常用于修改现有列或将新计算的结果作为新列添加到数据集中。以下是有关 `mutate` 的具体概念和用法: #### 1. **`mutate` 在数据分析库中的实现** 在 R 和 Python 中的数据分析工具(如 dplyr 或 pandas)中,`mutate` 被广泛应用于数据转换操作。 - 在 R 的 dplyr 库中,`mutate` 方法允许用户基于现有的列创建新的列或者更新已有列的值[^5]。 - 类似地,在 PySpark 数据框架 API 中,虽然没有直接命名为 `mutate` 的方法,但可以通过 `.withColumn()` 实现相同的功能。 ```python from pyspark.sql import SparkSession spark = SparkSession.builder.appName("example").getOrCreate() # 创建示例 DataFrame data = [(1, "Alice"), (2, "Bob")] columns = ["id", "name"] df = spark.createDataFrame(data, columns) # 使用 withColumn 添加一列 age df_with_age = df.withColumn("age", lit(30)) # 假设默认年龄为 30 df_with_age.show() ``` 此代码片段展示了如何通过 `.withColumn()` 方法向 DataFrame 添加一个新的列 `age`,这类似于其他语言中的 `mutate` 功能[^6]。 #### 2. **`mutate` 的核心功能** 无论是在哪种编程环境中,`mutate` 都具有以下几个主要特点: - 它不会改变原始数据集,而是返回一个经过变换的新数据集。 - 支持复杂的表达式运算来定义新列的内容。 - 可以同时生成多个新列或一次性更新多列。 对于 SQL 用户来说,这种行为可以类比为 SELECT 查询语句的一部分,其中新增加的字段由已有的字段派生而来。 #### 3. **与其他数据操作的区别** 需要注意的是,尽管 `mutate` 提供了一种强大的机制来进行列级别的调整,但它并不适用于过滤行、分组聚合等更复杂的数据操作场景。这些任务可能需要借助其他的专用函数完成,比如 filter/select/group_by/summarize 等[^7]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值