R数据分析:如何在R中使用mutate
因为最近搞毕业论文,有点忙,加上还有好多粉丝咨询,临近毕业更新就很少了。
今天就写一个非常简单的文章,敷衍一下吧,哈哈哈。
今天要写的就是数据清洗的函数mutate(),这个属于超级基本的内容哦,一般我们拿到数据最头疼应该就是清洗数据了,所以清洗数据的基础一定要牢牢掌握。
还有,如果你想成为一名合格的分析师,其实你只要精通清洗数据就够了,我这么说一点都不夸张。
image一个简单数据清洗任务常常包括:
- 从数据中选择列
- 设置数据行
- 汇总数据
- 汇总数据(计算汇总统计信息)
- 排序数据
- 创建新变量
本文就只写最后一个,即在R中使用mutate创建新变量。
mutate的基础知识
在开始之前,我们先谈谈dplyr。
dplyr是R中专门用于数据处理的包。更具体功能包括:
- select() 从数据中选择列
- filter() 数据行的子集
- group_by() 汇总数据
- summarise() 汇总数据(计算汇总统计信息)
- arrange() 排序数据
- mutate() 创建新变量
在大多数情况下,dplyr仅执行这些任务。dplyr出色的部分原因在于它“紧凑”。只有5或6种主要工具,并且非常易于使用。
mutate()如何用?
使用时,通常你只需要指定3项内容:
- 您要修改的数据框的名称
- 您将创建的新变量的名称
- 您将分配给新变量的值
还是给大家举个例子:看下图,mutate()的第一个参数就是数据框,然后就是新变量名=旧变量的某种新式。就是说你可以轻松地以数据框中的原有变量生成新变量。
[图片上传失败...(image-62cb6c-1614129756311)]
但是这个函数只能用于数据框,不能在列表,矩阵,向量或其他数据结构中使用。
注意,mutate()的第二个参数是“名称-值”对,就是说我们在创建变量时新变量需要一个名称,但是它也需要一个分配给该名称的值。因此,当使用mutate时,您需要提供名称和新值…即名称/值对。
我们再次看一下刚刚的语法示例:
image那么在上图中我们是要创建一个名为new_variable的新变量。分配给new_variable的值为existing_var乘以2的值。在此示例中,变量existing_var为原本就存在于数据框df当中的。
就是这么简单。
实例操作
为了加深大家的印象,还是给大家一个实例
library(dplyr)
library(ISLR)
我们使用ISLR包中的Auto数据框给大家演示。
在我们对数据进行实际操作之前,让我们先瞅一瞅它长啥样。
print(Auto)
[图片上传失败...(image-8e6993-1614129756311)]
打印出来时,您会发现数据数据框排列的有些杂乱,我们可以将它转化为tibble打印效果更好。tibble实际上<u style="margin: 0px; padding: 0px; border: 0px;">是</u>修改后的数据框。它的优点之一是它们以更好的格式打印出来。
auto_specs <- as.tibble(Auto)
print(auto_specs)
image
这样好多了。
您可以看到,当我们现在打印出来时,tibble结构更具可读性。
好了。比如我现在需要一个新变量叫做hp_to_weight,这个变量是原先horsepower / weight两个变量的比值,我们就可以用使用mutate()写出如下代码:
auto_specs_new <- mutate(auto_specs, hp_to_weight = horsepower / weight)
print(auto_specs_new)
image
可以看到新的变量已经在auto_specs_new这个数据框中了。在R中使用mutate()就是这么简单。
小结
今天给大家写了mutate()如何创建新变量,超级简单的一个教程,感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。
也欢迎大家的意见和建议。
如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供好的,详细和耐心的数据分析服务。
如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧,打工人!