在R中有很多的内置函数,比如transform()、rbind()、cbind()等函数,这些函数我们可以直接使用,除此之外,还有常见的几种包在处理数据的时候非常好用。

dplyr包

dplyr包是Hadley Wickham(ggplot2包的作者,被称为‘一个改变R的人’)的杰作, dplyr可用于处理R内部或者外部的结构化数据,相较于plyr包,dplyr专注接受dataframe对象, 大幅提高了速度,并且提供了更稳健的数据库接口。

一、筛选: filter系列

filter、filter_all、filter_at、filter_if

用法:filter(.data, 条件...)

这里我们用R的内置数据集作为例子(mtcars)

filter(mtcars, cyl == 8)

filter(mtcars, cyl < 6)

#过滤出cyl < 6 并且 vs == 1的行

filter(mtcars, cyl < 6 & vs == 1)

filter(mtcars, cyl < 6, vs == 1)

#过滤出cyl < 6 或者 vs == 1的行

filter(mtcars, cyl < 6 | vs == 1)

#过滤出cyl 为4或6的行

filter(mtcars, cyl %in% c(4, 6))

基于filter函数的用法,扩展出了一些新的函数

1filter_all(mtcars, any_vars(. > 150)) #筛选任何变量>150的样本

2filter_at(mtcars, vars(starts_with("d")), any_vars((. %% 2) == 0))

3#筛选变量以“d”结尾,并且变量 "%%2" 等于0

4filter_if(mtcars, ~ all(floor(.) == .), all_vars(. != 0))

5# 筛选变量向下取整 == 原变量数值, 并且这部分变量的数值!= 0 的样本集

二、slice函数

用法:slice(.data, ...)

用处: slice() 函数通过行号选取数据

#选取第一行的数据

slice(mtcars, 1L)

filter(mtcars, row_number() == 1L)

#选取最后一行数据

slice(mtcars, n())

filter(mtcars, row_number() == n())

#选取第5行到最后一行所有数据

slice(mtcars, 5:n())

filter(mtcars, between(row_number(), 5, n()))

这个函数在实际中并不常用,但是在某些情况下就会非常好用。

三、排列: arrange

用法:arrange(.data, ...)

arrange()按给定的列名依次对行进行排序,默认是按照升序排序,对列名加 desc() 可实现倒序排序。原数据集行名称会被过滤掉。

#以cyl和disp联合升序排序 ,如果cyl相同,按照disp

arrange(mtcars, cyl, disp)

#以disp降序排序

arrange(mtcars, desc(disp))

四、选择: select

用法:select(.data, ...)

#选取变量名前缀包含Petal的列

select(iris, starts_with("Petal"))

#选取变量名前缀不包含Petal的列

select(iris, -starts_with("Petal"))

#选取变量名后缀包含Width的列

select(iris, ends_with("Width"))

#选取变量名后缀不包含Width的列

select(iris, -ends_with("Width"))

#选取变量名中包含etal的列

select(iris, contains("etal"))

#选取变量名中不包含etal的列

select(iris, -contains("etal"))

#正则表达式匹配,返回变量名中包含t的列

select(iris, matches(".t."))

#正则表达式匹配,返回变量名中不包含t的列

select(iris, -matches(".t."))

#直接选取列

select(iris, Petal.Length, Petal.Width)

#返回除Petal.Length和Petal.Width之外的所有列

select(iris, -Petal.Length, -Petal.Width)

#使用冒号连接列名,选择多个列

select(iris, Sepal.Length:Petal.Width)

#选择字符向量中的列,select中不能直接使用字符向量筛选,需要使用one_of函数

vars

select(iris, one_of(vars))

#返回指定字符向量之外的列

select(iris, -one_of(vars))

#返回所有列,一般调整数据集中变量顺序时使用

select(iris, everything())

#调整列顺序,把Species列放到最前面

select(iris, Species, everything())

一般我们用select函数选择一个数据的几列

df

df

#选择V4,V5,V6三列

select(df, V4:V6)

select(df, num_range("V", 4:6))

五、变形: mutate

用法:mutate(.data, ...)

mutate()函数对已有列进行数据运算并添加为新列,

#添加新列wt_kg和wt_t,在同一语句中可以使用刚添加的列

mutate(mtcars, wt_kg = wt * 453.592, wt_t = wt_kg / 1000)

#计算新列wt_kg和wt_t,返回对象中只包含新列

transmute(mtcars, wt_kg = wt * 453.592, wt_t = wt_kg / 1000)

六、分组: group

用法:group_by(.data, ..., add = FALSE)

group_by()用于对数据集按照给定变量分组,返回分组后的数据集。对返回后的数据集使用以上介绍的函数时,会自动的对分组数据操作。

#使用变量cyl对mtcars分组,返回分组后数据集

by_cyl

#返回每个分组中最大disp所在的行

filter(by_cyl, disp == max(disp))

#返回每个分组中变量名包含d的列,始终返回分组列cyl

select(by_cyl, contains("d"))

#使用mpg对每个分组排序

arrange(by_cyl, mpg)

#对每个分组无重复的取2行记录

sample_n(by_cyl, 2)

七、数据关联:join

类似于merge的用法

#内连接,合并数据仅保留匹配的记录

inner_join(x,y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

#左连接,向数据集x中加入匹配的数据集y记录

left_join(x,y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

#右连接,向数据集y中加入匹配的数据集x记录

right_join(x,y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

#全连接,合并数据保留所有记录,所有行

full_join(x,y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...)

#返回能够与y表匹配的x表所有记录

semi_join(x,y, by = NULL, copy = FALSE, ...)

#返回无法与y表匹配的x表的所有记录

anti_join(x, y, by = NULL, copy = FALSE, ...)

当然,dplyr不止这一种用法,希望各位道友一起补充,丰富我们的数据数据经验和生信分析的工作。

r语言中mpg数据_R语言常用的数据处理的包(1)相关推荐

  1. r语言中mpg数据_R语言数据筛选整理包dplyr

    dplyr软件包是R中功能最强大,最受欢迎的软件包之一.该软件包由最受欢迎的R程序员Hadley Wickham编写,他编写了许多有用的R软件包,如ggplot2,tidyr等.本文包括一些示例和如何 ...

  2. r语言中mpg数据_R语言数据分析系列之五

    R语言数据分析系列之五 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,详细实现细节请參见我的github项目:https://gith ...

  3. r语言中mpg数据_R语言数据实战 | 统计检验

    原标题:R语言数据实战 | 统计检验 1.单个总体均值的t检验 1. 什么是检验? 检验(test)是统计学中最重要的概念之一,在科学研究和实际业务中都有着广泛的应用.用一句话来概括就是:人们希望通过 ...

  4. R语言中dim函数_R语言 常见函数知识点梳理与解析 | 精选分析

    目 录 1.str() 显示数据集和变量类型,并简要展示数据集情况 2.subset()  取子集 3.which.min(), which.max()和which() 4.pmin( )/ pmax ...

  5. R语言中dim函数_R语言--向量化计算(apply族函数)

    R语言最优秀的是它的向量化编程,这其中apply族函数扮演了非常重要的角色.apply族函数是由apply.sapply.lapply.mapply.tapply等函数组成的.熟练使用apply族函数 ...

  6. r语言中mpg数据_零基础生信入门第一课——R语言数据清洗,超详细讲解,建议收藏!...

    小伙伴们大家好!今天我要用一篇推文精要概括数据清洗中的最基本最关键的步骤,对于零基础的学员一定会有很大收获!数据清洗是完成一篇生信文章最基本但也是最终要的准备工作,如果不会数据清洗,就要错过很多优质数 ...

  7. R语言中dim函数_R语言中的方差分析方法汇总

    方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...

  8. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

  9. R计算两列数据的相关系数_使用R语言中的corrplot来绘制相关系数矩阵热图

    R语言也是目前常用的数据分析编程语言之一,目前经过使用者.科学家们的开发,其功能也比较强大.本文就使用R语言中的corrplot来绘制相关系数矩阵热图进行介绍. 下面以波士顿Boston的房价数据为例 ...

最新文章

  1. 编写书籍《C语言嵌入式系统编程修炼之道》序言
  2. 你会怎样衡量你的产品? —— 一点产品数据分析的经验分享
  3. 解决sharepoint2010的多行文本框的插入图片—【从sharepoint】的disabled问题
  4. SAP Smart Business design time = CDS view SADL
  5. 您的日志就是您的数据:logstash + elasticsearch
  6. 怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?
  7. python自动寻路模板_Python实现的简单模板引擎功能示例
  8. linux系统下常用的打包/解压缩包命令
  9. 你习惯用微信支付还是支付宝?
  10. canvas 压缩图片上传
  11. 第七周 linux加载和启动一个可执行程序
  12. Go Revel - Filters(过滤器链)
  13. JAVA编程思想-第四章 控制执行流程
  14. 微软开启imap服务器,连接到 IMAP 或 SMTP 服务器
  15. flash cs6 快捷键
  16. 计算机学院部长换届答辩,未来可期,各自精彩——记计算机科学学院2020年两委换届竞职答辩活动...
  17. 做PPT只会直接插入图片?这样处理图片,让PPT的颜值瞬间提升几倍
  18. Nginx配置浏览器缓存
  19. 微信开发者工具,出现“当前系统代理不是安全代理,是否信任?”
  20. mysql 存储表情符号

热门文章

  1. 隔壁大爷都会网络布线啦、搞起来搞起来
  2. mysql event type_MySQL 【Row】下的 Event_type
  3. java请模拟出双重定时器_Java多线程基础 - osc_czmaebyq的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. zblock 结构_zfs raidz结构详解
  5. 关于strlwr,strupr等函数在此作用域中尚未声明的问题
  6. python可以在unix_在python窗口中使用绝对的unix路径
  7. 微服务引擎的线上流量治理最佳实践
  8. 钉钉猛增40倍流量压力,阿里云DBA如何应对?
  9. 从零点五开始用Unity做半个2D战棋小游戏(三)
  10. 使用Xshell链接阿里的Linux服务器