一、安装和加载

1、安装并加载tidyr和dplyr包

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

2、读取数据

expression <- read.delim("gene_expression.txt",sep="\t",header = T)

二、tidyr包操作

%>%    #用于实现将一个函数的输出传递给下一个函数的第一个参数。相当于管道,优先级高于赋值
stocksm <- stocks %>% gather(stock, price, -time) #先执行右面的,结果赋值给stocksm #短数据变成长数据
tidy_gather <- gather(data=expression,key=Samplename,value = Expression,-id)
data #“数据框名”
#关于key-value,原始数据一个“列名-列值”对应一个“key-value”
key #“key名”,新生成的key列,值为转化的列的列名
value #“value名”,新生成的value列,值为对应列名的列的值,
... #列的选择。如果为空,则选择所有变量。可以提供裸变量名,使用x:z选择x和z之间的所有变量,使用-y排除y。 #长数据变短数据
tidy_spread <- spread(tidy_gather,key=Samplename,value = Expression) #gather逆向 #按列分割
#给定正则表达式或字符位置向量,separate()会将单个字符列转换为多个列。
separate(
data, #数据框
col, #要分割的列名或位置
into, #作为字符向量创建的新变量的名称。使用NA来省略输出中的变量。
sep = "[^[:alnum:]]+", #列之间的分隔符。sep的数量应该比into少1。
#如果是字符,sep被解释为正则表达式。默认值是匹配任何非字母数字值序列的正则表达式。
#如果是数字,sep被解释为要在其中拆分的字符位置。正值从字符串最左边的1开始;负值从字符串最右边的-1开始。
remove = TRUE, #如果为TRUE,则从输出数据帧中移除输入列。
extra = "warn", #如果sep是一个字符向量,这将控制当有太多片段时发生的情况。有三个有效的选项:
#"warn"(默认):发出警告并删除额外值。
#"drop":在没有警告的情况下删除任何额外的值。
#"merge":只分割最多(into)次
fill = "warn", #如果sep是一个字符向量,这将控制当没有足够的片段时发生的情况。有三个有效的选项:
#"warn"(默认):发出警告并从右侧填充
#"right":填充右边缺失的值
#"left":在左边填充缺失的值
)
#按列合并
tidy_unite <-
unite(tidy_separate,col=Samplename,into=c("Source","Samplename"),sep="_")

三、dplyr包操作

#按id进行排序
dplyr_arrange <- arrange(tidy_gather , id ) #按id进行排序的基础上按Expression的降序排列,后面可以继续添加其他变量
dplyr_arrange1 <- arrange(tidy_gather,id,desc(Expression))
dplyr_arrange1 <- arrange(tidy_gather,id,-Expression) #desc()可以用-替代 #排序时添加分组
mtcars %>% group_by(cyl)%>% arrange(desc(wt), .by_group = TRUE) #筛选行
filter(starwars, hair_color == "none" & eye_color == "black")
filter(starwars, hair_color == "none", eye_color == "black") #相当于使用 &
filter(starwars, hair_color == "none" | eye_color == "black") #加管道筛选
starwars %>% filter(mass > mean(mass, na.rm = TRUE))
starwars %>% group_by(gender) %>% filter(mass > mean(mass, na.rm = TRUE))
Result <- filter( tidy_gather , Expression>1 ) %>% arrange( Expression ) #展示指定的GeneId SampleName Expression 列
dplyr_select <- select( tidy_separate , id , Samplename , Expression )
dplyr_select <- select( tidy_separate , -Source ) #可使用-排除 #增加新列,将现有的字段经过计算后生成新字段。
dplyr_mutate <- mutate( tidy_gather , ID=sub( "gene", "Gene", id ) ) #sub函数将id列的"gene"替换为"Gene" #分组统计
mtcars %>%
+ group_by(cyl) %>%
+ summarise(mean = mean(disp), n = n()) #根据cyl分组,统计各组中disp的平均值以及组的大小 #按行合并,行索引
bind_rows(a , c) #按列合并,列索引
bind_cols(a , c) #取并集,按列索引
union(a , c) #取差集,按列索引,保留a不同于c的部分
setdiff(a , c) #内连接,按行,只保留a、b共有的x1值的行
inner_join(a,b,by=“x1”) #全连接,按行,保留全部,空值用NA补齐
full_join(a,b,by=“x1”) #左连接,按行,其中a全部保留
left_join(a,b,by=“x1”) #右连接,按行,其中b全部保留
right_join(a,b,by=“x1”) #a中所有在b中匹配的行
semi_join(a,b,by=“x1”) #a中所有在b中不匹配的行
anti_join(a,b,by="x1")

R语言-tidyr和dplyr的更多相关文章

  1. R语言扩展包dplyr——数据清洗和整理

    R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报  分类: R Programming(11)  ...

  2. R语言数据处理包dplyr、tidyr笔记

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...

  3. R语言扩展包dplyr笔记

    引言 2014年刚到, 就在 Feedly 订阅里看到 RStudio Blog 介绍 dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等 ...

  4. R语言数据处理利器——dplyr简介

    dplyr是由Hadley Wickham主持开发和维护的一个主要针对数据框快速计算.整合的函数包,同时提供一些常用函数的高速写法以及几个开源数据库的连接.此包是plyr包的深化功能包,其名字中的字母 ...

  5. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记   dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了 ...

  6. R语言dplyr包初探

    昨天学了一下R语言dplyr包,处理数据框还是很好用的.记录一下免得我忘记了... 先写一篇入门的,以后有空再写一篇详细的用法. #dplyr learning library(dplyr) #fil ...

  7. R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较. 一.日期分组 1.关于时间的包都有很多 ...

  8. R语言进行数据预处理wranging

    R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...

  9. Iris的R语言命令工具箱(1)

    Iris的R语言命令工具箱(1) 最近在做数据分析,使用了R语言做了些数据处理和可视化,在此记下遇到过的问题.应用过的命令.处理方式以及工具包- *版权声明:本文为博主原创文章,转载请注明本文地址.h ...

随机推荐

  1. string的底层实现

    String底层实现 string在C++也是一个重要的知识,但是想要用好它,就要知道它的底层是如何写的,才能更好的用好这个string,那么这次就来实现string的底层,但是string的接口功能 ...

  2. 记录一次ubuntu安装mysql,远程无法登录问题的解决历程

    进入ubuntu的mysql配置文件 sudo vim debian.cnf [client] host = localhost user = debian-sys-maint password = ...

  3. 【最全】CSS盒子(div)水平垂直居中居然还有这种方式

    最全的CSS盒子(div)水平垂直居中布局,对CSS 布局掌握程度决定你在 Web 开发中的开发页面速度. 相对于屏幕 方法一:利用定位 <div class="box"&g ...

  4. idea201903License

    License name: https://zhile.io Activation code: 3AGXEJXFK9-eyJsaWNlbnNlSWQiOiIzQUdYRUpYRks5IiwibGljZ ...

  5. APISpace 让你快速获取安徒生童话故事

    <安徒生童话>是丹麦作家安徒生创作的童话集,共由166篇故事组成.该作爱憎分明,热情歌颂劳动人民.赞美他们的善良和纯洁的优秀品德:无情地揭露和批判王公贵族们的愚蠢.无能.贪婪和残暴. 接口 ...

  6. 一个豆瓣电影Top250爬虫

    一个爬虫 这是我第一次接触爬虫,写的第一个爬虫实例. https://movie.douban.com/top250 模块 import requests #用于发送请求 import re #使用正 ...

  7. kubernetes之HPA

    1.什么是HPA? 在 Kubernetes 中,HorizontalPodAutoscaler 自动更新工作负载资源 (例如 Deployment 或者 StatefulSet), 目的是自动扩缩工 ...

  8. DFS序和7种模型

    DFS序就是将树的节点按照先根的顺序遍历得到的节点顺序 性质:一个子树全在一个连续的区间内,可以与线段树和树状数组搭配使用 很好写,只需在dfs中加几行代码即可. 代码: void dfs(ll u, ...

  9. 事务_基本演示和事务_默认自动提交&手动提交

    事务的基本介绍 概念: 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败 操作: 开启事务:start transaction; 回滚:rollback; 提交:co ...

  10. HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

    从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...