生信星球培训第108期

生信星球学习小组Day4

2021-05-17  本文已影响0人  生信小白

第一步_安装和加载R包

01_设置镜像

# options函数就是设置R运行过程中的一些选项设置
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源

02_安装R包

安装R包使用的函数取决于下载的地址

install.packages() # CRAN网站
BiocManager::install() # Bioconductor

03_加载R包

library()
require()

第二步_dplyr包的五个基础函数

test <- iris[c(1:2,51:52,101:102),]
# mutate()新增列
mutate(test, new = Sepal.Length * Sepal.Width) #  新增new列

# select()按列筛选
select(test,1) # 选取第一列
select(test,c(1,5)) # 选取1和5列
select(test, Sepal.Length) # 选取Sepal.Length列

select(test, Petal.Length, Petal.Width) # 选取Petal.Length, Petal.Width两列

vars <- c("Petal.Length", "Petal.Width") # 选取vars变量中的任意一列
select(test, one_of(vars)) # 

# filter()按行筛选
filter(test, Species == "setosa") # 选取setosa的行
filter(test, Species == "setosa"&Sepal.Length > 5 ) # 选取setosa且Sepal.Length > 5的行
filter(test, Species %in% c("setosa","versicolor")) # 选取向量中包含元素的列

# arrange()排序
arrange(test, Sepal.Length) # 按照Sepal.Length列排序,默认从小到大
arrange(test, desc(Sepal.Length)) # 用desc()排序顺序,从大到小

# summarise()对数据进行汇总
summarise(test,
          mean(Sepal.Length), # 计算Sepal.Length的平均值
          sd(Sepal.Length)) # 计算Sepal.Length的标准差

group_by(test, Species) # 先按照Species分三组setosa;versicolor;virginica 
summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Length)) # 计算每组Sepal.Length的平均值和标准差

dplyr两个实用技能

## 管道操作:%>% ,加载任意一个tidyverse包即可使用
test  %>%  group_by(Species)  %>%  summarise(mean(Sepal.Length), sd(Sepal.Length))

## count统计某列的unique值
count(test,Species)

dplyr处理数据关系

将两个表进行连接,注意不要引入因子变量

# 合并两组向量形成数据框
test1 <- data.frame(x = c('b','e','f','x'), 
                    z = c("A","B","C",'D'),
                    stringsAsFactors = F)

test2 <- data.frame(x = c('a','b','c','d','e','f'), 
                    y = c(1,2,3,4,5,6),
                    stringsAsFactors = F)

# 內连inner_join,取交集
inner_join(test1, test2, by = "x") # test1和test2两个数据框根据x列共同元素取交集合并

# 左连left_jion
left_join(test1, test2, by = 'x') # 以test1为标准,匹配不到test2的x列,即缺失值
left_join(test2, test1, by = 'x') # 以test2为标准,匹配不到test1的x列,即缺失值

# 全连full_jion
full_join( test1, test2, by = 'x') # test1和test2数据框中x列元素全部合并保留

# 半连接:返回test1数据框中能够与test2匹配的x列的元素
semi_join( test1, test2, by = 'x')

# 反连接:返回test1数据框中无法与test2匹配的x列的元素
anti_join(x = test1, y = test2, by = 'x')

# 简单合并,相当于cbind()和rbind()函数
# 注意:bind_rows()需要两个数据框有相同的列;bind_cols需要两组数据框具有相同的行
test1 <- data.frame(x = c(1,2,3,4), y = c(10,20,30,40)) # 4*2
test1
test2 <- data.frame(x = c(5,6), y = c(50,60)) # 2*2
test2
test3 <- data.frame(z = c(100,200,300,400)) # 4*1
test3
bind_rows(test1,test2) # 6*2
bind_cols(test1,test3) # 4*3

上一篇下一篇

猜你喜欢

热点阅读