R语言学习Day6——学习R包
Day6. 学习R包.png
1.安装和加载R包
1.1 镜像设置
# options函数就是设置R运行过程中的一些选项设置
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源
1.2 安装R包
#根据目标R包的位置(CRAN网站或Biocductor)选择对应的程序(通过谷歌搜索确定)
install.packages(“包”) #R包存在于CRAN网站
BiocManager::install(“包”)#R包存在于Biocductor
1.3 加载R包
前期仅是下载并安装了R包,每次使用时,需要加载R包
#下面的两个程序均可!
library(包)
require(包)
1.4 安装三部曲
以R包dplyr为例
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #镜像设置
install.packages("dplyr")#从CRAN网站下载dplyr包
library(dplyr)#安装dplyr包
下述演示均基于内置数据集iris的简化版
test <- iris[c(1:2,51:52,101:102),] #定义test数据集
2.dplyr五个基础函数
2.1 新增列:mutate()
mutate(test, new = Sepal.Length * Sepal.Width)
image.png
2.2 按列筛选:select()
可分为两种情况:按照列号筛选、按照列名筛选
#情况1:按照列号筛选
select(test,1) #筛选test数据集中的第1列
select(test,c(1,5)) #筛选test数据集中的第1列和第5列
#情况2:按照列号筛选
select(test,Sepal.Length)#筛选test数据集中列名为“Sepal.Length”的列
select(test,Petal.Length, Petal.Width)#筛选test数据集中列名为“Petal.Length”列和“Petal.Width”列
2.3 按行筛选:filter()
filter(test, Species == "setosa") #筛选test数据集中,Species为setosa的行
filter(test, Species == "setosa"&Sepal.Length > 5 )#筛选test数据集中,Species为setosa且Sepal.Length > 5的行
filter(test, Species %in% c("setosa","versicolor"))#筛选test数据集中,Species为setosa或versicolor的行
2.4 按列对整个表格进行排序:arrange()
arrange(test, Sepal.Length) #对test数据集的Sepal.Length排序(默认从小到大)
arrange(test, desc(Sepal.Length))#对test数据集的Sepal.Length排序从大到小排序
2.5 汇总:summarise()
summarise(test, mean(Sepal.Length))#计算某一列(这里是Sepal.Length)的平均数
summarise(test, sd(Sepal.Length))#计算某一列(这里是Sepal.Length)的标准差
summarise(test, mean(Sepal.Length), sd(Sepal.Length))#计算某一列(这里是Sepal.Length)的平均数和标准差
group_by(test, Species)#按照Species对数据分组
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))#按照Species对数据分组,然后求平均数和标准差
3.dplyr两个实用技能
3.1 管道操作 %>% (cmd/ctr + shift + M)
test %>%
group_by(Species) %>%
summarise(mean(Sepal.Length), sd(Sepal.Length))
3.2 统计(count)某列的unique值
count(test,Species)#统计test数据集中,species中的unique值
4.dplyr处理关系数据
示例数据如下
options(stringsAsFactors = F)
test1 <- data.frame(x = c('b','e','f','x'),
z = c("A","B","C",'D'),
stringsAsFactors = F)
test1
## x z
## 1 b A
## 2 e B
## 3 f C
## 4 x D
test2 <- data.frame(x = c('a','b','c','d','e','f'),
y = c(1,2,3,4,5,6),
stringsAsFactors = F)
test2
## x y
## 1 a 1
## 2 b 2
## 3 c 3
## 4 d 4
## 5 e 5
## 6 f 6
4.1 內连inner_join,取交集
inner_join(test1, test2, by = "x")
4.2 左连left_join
left_join(test1, test2, by = 'x')
4.3 全连full_join
full_join( test1, test2, by = 'x')
4.4 半连接:返回能够与y表匹配的x表所有记录semi_join
semi_join(x = test1, y = test2, by = 'x')
4.5 反连接:返回无法与y表匹配的x表的所记录anti_join
anti_join(x = test2, y = test1, by = 'x')
4.6 简单合并
Diginity in plain.