R数据分析:如何在R中使用mutate
因为最近搞毕业论文,有点忙,加上还有好多粉丝咨询,临近毕业更新就很少了。
今天就写一个非常简单的文章,敷衍一下吧,哈哈哈。
今天要写的就是数据清洗的函数mutate(),这个属于超级基本的内容哦,一般我们拿到数据最头疼应该就是清洗数据了,所以清洗数据的基础一定要牢牢掌握。
还有,如果你想成为一名合格的分析师,其实你只要精通清洗数据就够了,我这么说一点都不夸张。
一个简单数据清洗任务常常包括:
从数据中选择列
设置数据行
汇总数据
汇总数据(计算汇总统计信息)
排序数据
创建新变量
本文就只写最后一个,即在R中使用mutate创建新变量。
mutate的基础知识
在开始之前,我们先谈谈dplyr。
dplyr是R中专门用于数据处理的包。更具体功能包括:
select() 从数据中选择列
filter() 数据行的子集
group_by() 汇总数据
summarise() 汇总数据(计算汇总统计信息)
arrange() 排序数据
mutate() 创建新变量
在大多数情况下,dplyr仅执行这些任务。dplyr出色的部分原因在于它“紧凑”。只有5或6种主要工具,并且非常易于使用。
mutate()如何用?
使用时,通常你只需要指定3项内容:
您要修改的数据框的名称
您将创建的新变量的名称
您将分配给新变量的值
还是给大家举个例子:看下图,mutate()的第一个参数就是数据框,然后就是新变量名=旧变量的某种新式。就是说你可以轻松地以数据框中的原有变量生成新变量。
但是这个函数只能用于数据框,不能在列表,矩阵,向量或其他数据结构中使用。
注意,mutate()的第二个参数是“名称-值”对,就是说我们在创建变量时新变量需要一个名称,但是它也需要一个分配给该名称的值。因此,当使用mutate时,您需要提供名称和新值…即名称/值对。
我们再次看一下刚刚的语法示例:
那么在上图中我们是要创建一个名为new_variable的新变量。分配给new_variable的值为existing_var乘以2的值。在此示例中,变量existing_var为原本就存在于数据框df当中的。
就是这么简单。
实例操作
为了加深大家的印象,还是给大家一个实例
library(dplyr)
library(ISLR)
我们使用ISLR包中的Auto数据框给大家演示。
在我们对数据进行实际操作之前,让我们先瞅一瞅它长啥样。
print(Auto)
打印出来时,您会发现数据数据框排列的有些杂乱,我们可以将它转化为tibble打印效果更好。tibble实际上是修改后的数据框。它的优点之一是它们以更好的格式打印出来。
auto_specs <- as.tibble(Auto)
print(auto_specs)
这样好多了。
您可以看到,当我们现在打印出来时,tibble结构更具可读性。
好了。比如我现在需要一个新变量叫做hp_to_weight,这个变量是原先horsepower / weight两个变量的比值,我们就可以用使用mutate()写出如下代码:
auto_specs_new <- mutate(auto_specs, hp_to_weight = horsepower / weight)
print(auto_specs_new)
可以看到新的变量已经在auto_specs_new这个数据框中了。在R中使用mutate()就是这么简单。