dplyr包数据操作高效工具

2022/7/11 来源:不详

北京最好手足癣医院 http://m.39.net/news/a_8598844.html

dplyr包:筛选,排序,转换,重命名,因子计算

dplyr包是一个高效数据转换工具.可以通过调用单个函数,实现筛选、排序、重命名等格式上的变换与操作.

dplyr包与baseR对比

dataframe是R中一个非常重要的概念,你可以把dataframe看作表格.dplyr的核心代码是用C++编写,运行速度非常快.

下载与安装

install.packages("dplyr")library(dplyr)

代码说明:

install.packages(“”):从cran上下载R包,R包只需下载一次

library():使用R包时,需先载入R包

读入数据

data(mtcars)

代码说明:

自定义数据读取见文末[推荐阅读]

mtcars数据集

数据说明:

mtcars为R内置数据集.数据包括了不同品牌汽车的mpg英里加仑、cyl气瓶数量、disp位移等数据.

排序

1

升序

arrange()按照列,对数据进行升序排序:

mtcars%%arrange(cyl,disp)

代码说明:

arrange(列名1,列名2):以cyl为筛选对象对数据进行排列,然后对相同排名的观测值以disp进行再排序

2

降序

mtcars%%arrange(desc(cyl),desc(disp))

代码说明:

desc():降序排列

筛选

1

条件筛选;行筛选

filter()按条件筛选行,函数的参数是逻辑判断.筛选出满足条件为TRUE的所有行.

使用iris鸢尾花数据集

data(iris)

鸢尾花数据集

iris%%filter(Species=="setosa")

代码说明:

filter():筛选出所有species为setosa类型的行.

注意,因为filter的参数为逻辑判断,因此species为==,而不是单个的=赋值符号

逻辑判断,点击文末[推荐阅读]

iris%%filter(Species=="setosa"Sepal.Length==5)

代码说明:

filter():选出species是setosa并且sepal.length=5的鸢尾花

注意,这里species是factor类型,factor类型的数据能够将数据进行分类,如果原始数据为character类型,无法对数据进行分组.

数据类型,请看文末[推荐阅读]

2

列筛选

select()根据位置、名称、函数等筛选列:

iris%%select(1:3)

代码说明:

选取1~3列

在baseR中可等价写为:

iris[1:3]

根据列名进行筛选:

iris%%select(Species,Sepal.Length)

代码说明:

使用列名对数据集进行筛选

使用baseR可写为:

iris[c("Species","Sepal.Length")]

iris%%select(starts_with("Petal"))

代码说明:

选取以Petal开头的列

starts_with(),ends_with(),matches()andcontains()能够匹配带有这些字段的数据

3

按数据类型筛选

Filter(is.factor,iris)

代码说明:

Filter():根据数据类型筛选.筛选出iris数据集中数据类型为factor的列

新增列

1

新增列

mutate(mtcars,z=vs+am,z2=z^2)

代码说明:

mutate():创建新列z,z2

改变列顺序

mtcars%%relocate(gear,carb)

代码说明:

relocate():改变数据原有列的位置

最大/小值

根据位置筛选行:

slice(mtcars,25:30)

代码说明

slice():指定所选择的行

1

选择前/后n行观测值

iris%%slice_head(n=3)

代码说明:

slice_head()选择前3行观测值

top_n(CO2,3,uptake)

代码说明:

top(data,n,列):以列为筛选条件,筛选排在前n的观测值

slice_tail()

代码说明:

选出数据集最后的行

重命名

iris%%rename(sepal_length=Sepal.Length,sepal_width=2)

代码说明:

rename()对数据进行重命名,参数可以是名称或列的序号.将sepal.length改成sepal_length,并将第2列改名为sepal_width

分组(因子类型)

group_by()能够将数据进行分组.比如一个记录全校成绩的数据集,需要按照年级、班级对数据进行分组,计算每个班的平均分和标准差.这里group_by()中处理的分组数据类型需为factor,经过group_by()计算的数据将按照分组进行计算.

iris%%summarise(x1=mean(Sepal.Width),x2=sd(Sepal.Width))

代码说明:

summaries():描述性统计,将结果存储在data.frame中

iris%%group_by(Species)%%summarise(x1=mean(Sepal.Width),x2=sd(Sepal.Width))

代码说明:

group_by():将数据分组再对分组的数据进行计算,分组的species可分为三类,根据分组的结果,summarise按行计算结论.

推荐阅读

17_数据导入

11_条件判别筛选(blender特辑)

8_数据类型(春节特辑)

4_快速入门flextable包:替代付费软件!绘制多样化图表

R包分类:生物医学

预览时标签不可点收录于合集#个上一篇下一篇
转载请注明:
http://www.3g-city.net/gjycs/748.html
  • 上一篇文章:

  • 下一篇文章:
    • 没有热点文章
    • 没有推荐文章
    网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有2014-2024 冀ICP备19027023号-6
    今天是: