生信星球培训第四十五期

Day6

2020-03-22  本文已影响0人  French_fries_

R包

1 安装

1.1 镜像设置

tools/global options/package

1.2 安装命令

install.packages('包')
biocManager::install('包')
#取决于你要安装的包存在于CRAN网站还是Biocductor
library(包)
require(包)
#打开包

2 dplyr五个基础函数

test <- iris[c(1:2,51:52,101:102),]
#取出iris数据中第1,2,51,52,101,102行的数据

2.1 mutate 添加列

mutate(test, new = Sepal.Length * Sepal.Width)
#新建列,数据从test中取,列名为new,数据为列Sepal.Length 和Sepal.Width相乘的结果

注意,这里添加的列的不存在于test中的,如果需要改变的话需要赋值给test(test<-)

2.2 select 筛选列

按列号筛选
select(test,c(1,5))
取出第一和第五列
按列名筛选
select(test, Petal.Length, Petal.Width)
取出名叫Petal.Length, Petal.Width的两列

2.3 filter 筛选行

filter(test, Species == "setosa")
#筛选test变量中Species这一列中是setosa的行
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5                  1.4                  0.2        setosa
## 2          4.9         3.0                  1.4                  0.2        setosa
filter(test, Species == "setosa"&Sepal.Length > 5 )
#筛选test变量Species这一列中是setosa并且Sepal.Length>5的行
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5                   1.4                  0.2        setosa
filter(test, Species %in% c("setosa","versicolor"))
#筛选物种存在于向量c("setosa","versicolor")中的行

2.4 arrange 按某1列或某几列对整个表格进行排序

arrange(test, Sepal.Length)#默认从小到大排序
arrange(test, desc(Sepal.Length))#desc:降序排列

2.5 summarise 汇总

group_by(test,species) 
#对于test变量中的species列进行分组,相同的放在一起
summarise(test,mean(Sepal.Length),sd(Sepal.Width))
#分别计算test变量中Sepal.Length和Sepal.Width列的平均值和方差
summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Width))
#分别计算test变量不同物种中Sepal.Length和Sepal.Width列的平均值和方差、

3 dplyr的实用技能

3.1 管道操作

%>% 用ctrl+shift+M可以打出来

test %>%
  group_by(Species) %>% 
  summarise(mean(Sepal.Length),sd(Sepal.Length))
#这段的功能和summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Width))是一样的,意思是可以直接把数据传递给下一个函数调用或表达式

3.2 count统计某列的unique值

count(test,Species) #统计Species中的种类以及数量

4 dplyr处理关系数据

新建数据框

test1 <- data.frame(x=c('1','2','3','4'),
                    y=c('a','b','c','d'),
                    stringsAsFactors=T)
#stringsAsFactors: 逻辑:字符向量是否应该转换为因子?默认值是TRUE,但是可以通过设置选项(stringsAsFactors=FALSE)来改变这一点。

1.內连inner_join,取交集
inner_join(test1, test2, by = "x")
2.左连left_join(从test1里取x列的值,并把对应的y表的数据加上)
left_join(test1, test2, by = 'x')
3.全连full_join
full_join( test1, test2, by = 'x')
4.半连接:返回能够与y表匹配的x表所有记录semi_join
semi_join(x = test1, y = test2, by = 'x')
5.反连接:返回无法与y表匹配的x表的所记录anti_join
anti_join(x = test2, y = test1, by = 'x')
6.简单合并
bind_rows(test1, test2) #把test1和test2中的行合并,需要两个表格列数相同
bind_cols(test1, test3) #把test1和test2中的列合并,需要有相同的行数
相当于base包里的cbind()函数和rbind()函数

上一篇下一篇

猜你喜欢

热点阅读