Day 6 生信小组学习笔记 御风而行

今日任务:以dplyr统计包为例,学习R包的安装与使用

1 R包的安装

镜像的设置

1.R studio默认选项
Tools→options→packages→CRAN mirror→清华源
仅能设置CRAN镜像源


2.设置RProfile文件保存默认设置

file.edit('~/.Rprofile') 编辑默认地址下的Rprofile文件
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) CRAN源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")  Bioconductor源
重启后检验
options()$repos
options()$BioC_mirror

dplyr包的安装与调取

install.packages("dplyr") 安装CRAN网站内程序包
BiocManager::install("limma") 安装Bioconductor内程序包
library(dplyr) 调用程序包

2 dplyr包的应用

以R语言自带数据集iris为例

新建一数据集test(含6个元素)
test <-iris[c(1:2,51:52,101:102)]

5个基本功能

mutate 新增列

mutate(test,new=Sepal.Length * Sepal.Width)
在test数据集中新增一列向量,列名为new,其数值等于数据集内两项的乘积

select 按列筛选

select(test,1) 筛选第一列
select(test, c(1,5)) 第一列与第五列
select(test,Sepal. Length) 筛选特定列名
select(test, Petal.Length, Petal.Width) 多个列名

filter 条件筛选行

filter(test, Species == "setosa")
filter(test, Species == "setosa"&Sepal.Length > 5 ) 多个条件
filter(test, Species %in% c("setosa","versicolor"))  位于子集中的元素用%in%表示 

arrange 按某一列或几列排列数据

arrange(test, desc(Sepal.Length)) descend降序排列,从大到小

summarize 汇总
用于输出各种统计数据

group_by(test, Species) 先按品种进行分组
 summarise(group_by(test, Species), mean(Sepal.Length), sd(Sepal.Length))

#小技巧
使用管道符(%>%) 有连接的命令相继进行
 test %>% 
  group_by(Species) %>% 
  summarise(mean(Sepal.Length), sd(Sepal.Length))
使用count统计特殊值的数量
count(test,Species) 本数据框内有几个品种?

dplyr处理关系数据

可应用于基因ID转换
输入数据框

test1 <- data.frame(x = c('b','e','f','x'), 
                    z = c("A","B","C",'D'),
                    stringsAsFactors = F)
stringAsFactors默认为True。而此时我们希望向量内字母作为字符/数值存在,不作为分类依据,故 stringsAsFactors = F
test2 <- data.frame(x = c('a','b','c','d','e','f'), 
                    y = c(1,2,3,4,5,6),
                    stringsAsFactors = F)
分别得到一 2×4和2×6矩阵

inner_join取交集
inner_join(test1, test2, by = "x")
约等于 cbind(,by=) + na.omit()

左连left_join
有次序、方向的cbind
left_join(test1, test2, by="x")

全连full_join(取并集)
full_join( test1, test2, by = "’x")

半连接
返回y表中所有与x表匹配的成分
semi_join(x = test1, y = test2, by = "x")

反连接
返回y表中所有无法与x表匹配的成分
anti_join(x = test2, y = test1, by = "x")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容