R语言ETL系列:创建字段(mutate)

本文介绍了在R语言中使用tidyverse的mutate函数创建新的数据列,包括构造常数列、计算新列、字符串拼接与拆分。通过实例展示了如何处理如单价和数量计算交易额、时间差计算、日期格式转换等常见数据操作。这些技能在特征工程和文本挖掘中至关重要。
摘要由CSDN通过智能技术生成

640?wx_fmt=png

作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

邮箱:huang.tian-yuan@qq.com


有没有一些时候你想要给表格加一个新的列?本章将会介绍如何在表格中创建新的字段。但是首先我们要知道为什么要什么做,下面是可能的一些情况:

  • 有时候需要构造一列全部是01的数列,或者是给每一个记录赋予一个不同的ID

  • 购物数据中,含有单价和数量,需要计算交易额,然后加入到表格中;

  • 我们数据中有年月日的数据,我们需要把它们拼接成一个字符格式,比如,20181010日,我们需要表示为20181010或者2018/10/10

tidyverse中,我们可以用mutate函数给表格增加新的一列。下面将会分节介绍,首先载入我们需要的数据和包:

1library(tidyverse)
2library(nycflights1


添加常数列

这里举一个简单的例子,用iris数据集,增加一个完全为0的新列,我们会限制输出列为前六行,以免输出内容过多。

 1iris %>%
2  mutate(zeros = 0) %>%
3  head
4##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species zeros
5## 1          5.1         3.5          1.4         0.2  setosa     0
6## 2          4.9         3.0          1.4         0.2  setosa     0
7## 3          4.7         3.2          1.3         0.2  setosa     0
8## 4          4.6         3.1          1.5         0.2  setosa     0
9## 5          5.0         3.6          1.4         0.2  setosa     0
10## 6          5.4         3.9          1.7         0.4  setosa     0

可以看到我们已经新增了一列,名字叫做zeros,里面的值全部是0 SQL代码如下:

1<SQL> SELECT `Sepal.Length``Sepal.Width``Petal.Length``Petal.Width``Species`0.0 AS `zeros`
2FROM `iris`



算数运算

本例会用到flights数据,这个表中包含了航班的起飞时间(dep_time)和到达时间(arr_time),如果需要知道中间经理了多长时间,我们需要将两者相减。我们会先把两列取出来,然后再构造新的列:

 1flights %>%
2  select(dep_time,arr_time) %>%
3  mutate(time = arr_time - dep_time)
4## # A tibble: 336,776 x 3
5##    dep_time arr_time  time
6##       <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值