学员Ray Day-6 学习R包

作者: Ray_6ec3 | 来源:发表于2020-10-21 16:27 被阅读0次

包的下载安装各项设置

install.packages(“包”)  #CRAN
BiocManager::install(“包”)  #bioconductor

学习dplyr包

  • filter() #按行筛选
  • arrange() #按列排序
  • select() #按列筛选
  • mutate() transmute() #新增列,该列是现有列的函数
  • summarise() #汇总

iris数据集实操

> test <- iris[c(1:2,51:52,101:102),] #把内置数据框iris的相应行提取出来赋值给test数据框
> test
    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
51           7.0         3.2          4.7         1.4 versicolor
52           6.4         3.2          4.5         1.5 versicolor
101          6.3         3.3          6.0         2.5  virginica
102          5.8         2.7          5.1         1.9  virginica

mutate() transmute() #新增列

mutate(test, new = Sepal.Length * Sepal.Width)
  Sepal.Length Sepal.Width Petal.Length Petal.Width    Species   new
1          5.1         3.5          1.4         0.2     setosa 17.85
2          4.9         3.0          1.4         0.2     setosa 14.70
3          7.0         3.2          4.7         1.4 versicolor 22.40
4          6.4         3.2          4.5         1.5 versicolor 20.48
5          6.3         3.3          6.0         2.5  virginica 20.79
6          5.8         2.7          5.1         1.9  virginica 15.66
# 假如只想保存新变量,用transmute()
> transmute(test, new = Sepal.Length * Sepal.Width)
    new
1 17.85
2 14.70
3 22.40
4 20.48
5 20.79
6 15.66

select(),按列筛选

select(test,1:3) #也可以select(test,Sepal.Length:Petal.Length)
select(test,c(1,5))
select(test,Sepal.Length)
select(test,- c(1,5))  # -号可做反选
select(test,1)
##     Sepal.Length
## 1            5.1
## 2            4.9
## 51           7.0
## 52           6.4
## 101          6.3
## 102          5.8
select(test,c(1,5))
##     Sepal.Length    Species
## 1            5.1     setosa
## 2            4.9     setosa
## 51           7.0 versicolor
## 52           6.4 versicolor
## 101          6.3  virginica
## 102          5.8  virginica
select(test,Sepal.Length)
##     Sepal.Length
## 1            5.1
## 2            4.9
## 51           7.0
## 52           6.4
## 101          6.3
## 102          5.8

filter()筛选行

filter(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 )
##   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"))
##   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
## 3          7.0         3.2          4.7         1.4 versicolor
## 4          6.4         3.2          4.5         1.5 versicolor

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

> arrange(test, Sepal.Length)  #默认从小到大排序
> arrange(test, desc(Sepal.Length))  #用desc从大到小
> arrange(test, Petal.Length, desc(Sepal.Length)) #先按变量1从小到大,再按变量2从大到小
  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
3          6.4         3.2          4.5         1.5 versicolor
4          7.0         3.2          4.7         1.4 versicolor
5          5.8         2.7          5.1         1.9  virginica
6          6.3         3.3          6.0         2.5  virginica

summarise():汇总,可结合group_by()使用

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

dplyr两个实用技能

管道操作 %>% (cmd/ctr + shift + M)

test %>% 
  group_by(Species) %>% 
  summarise(mean(Sepal.Length), sd(Sepal.Length))

运行结果为下,注意比较下段代码结果

## # A tibble: 3 x 3
##   Species    `mean(Sepal.Length)` `sd(Sepal.Length)`
##   
## 1 setosa                     5                 0.141
## 2 versicolor                 6.7               0.424
## 3 virginica                  6.05              0.354

此处注意与之前代码比较,结果相同,但阅读流畅

group_by(test, Species)
## # A tibble: 6 x 5
## # Groups:   Species [3]
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species   
## *        <dbl>       <dbl>        <dbl>       <dbl> <fct>     
## 1          5.1         3.5          1.4         0.2 setosa    
## 2          4.9         3            1.4         0.2 setosa    
## 3          7           3.2          4.7         1.4 versicolor
## 4          6.4         3.2          4.5         1.5 versicolor
## 5          6.3         3.3          6           2.5 virginica 
## 6          5.8         2.7          5.1         1.9 virginica
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
## # A tibble: 3 x 3
##   Species    `mean(Sepal.Length)` `sd(Sepal.Length)`
##   
## 1 setosa                     5                 0.141
## 2 versicolor                 6.7               0.424
## 3 virginica                  6.05              0.354

count统计某列的unique值

count(test,Species)
## # A tibble: 3 x 2
##   Species        n
##   
## 1 setosa         2
## 2 versicolor     2
## 3 virginica      2

dplyr双表操作:处理关系数据

#新建2表,注意不要引入factor,
options(stringsAsFactors = F)
> 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)
> test1
  x z
1 b A
2 e B
3 f C
4 x D
> test2
  x y
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
6 f 6
  • 內连inner_join,取交集
  • 左连left_join
  • 全连full_join
  • 半连接semi_join:返回能够与y表匹配的x表所有记录
  • 反连接anti_join:返回无法与y表匹配的x表的所记录
  • 简单合并:bind_rows()按行合并, bind_cols()按列合并

相关文章

  • 学员Ray Day-6 学习R包

    包的下载安装各项设置 学习dplyr包 filter() #按行筛选 arrange() #按列排序 select...

  • 学习小组Day5笔记--jam

    R包学习 镜像设置 R包安装 install.package()BioManager::install() 学习d...

  • 学习小组Day6笔记——学生小幸

    今日份学习主要是R包,学习安装加载R包,以及示例deplyr包的使用和功能。

  • 学习小组DAY6--帅炸

    学习R包 安装和加载R包 镜像设置 安装 R包安装命令是install.packages(“包”)或者BiocMa...

  • 学习小组笔记Day6-Jocelyn

    #2020年7月8日学习笔记 学习R包 ##一、安装R包(dplyr) ##二、使用R包之常用的五个基本函数 ##...

  • 《学习小组day6笔记--(解杰)》

    学习R包 安装和加载R包 1.镜像设置file.edit('~/.Rprofile')----options("r...

  • 学习小组Day6笔记-田熙

    学习一个R包 安装R包 如果要安装的R包在CRAN网站,那么输入install.packages(“包”), 如果...

  • 学习小组Day6笔记-梦幻天堂

    今天任务安装R包并处理一个数据文件 R包 R包都有自己的说明书(cheatsheet),俗称小抄。 以后学习R包,...

  • 学习R包

    安装和加载R包 1. 镜像设置 2. 安装 R包安装命令是install.packages(“包”) 安装的包...

  • Day6 学习R包

    学习心得 今天主要学习的是R包,R包对于生信而言是非常重要的,主要包括安装和加载R包,同时了解了dplyr这个包中...

网友评论

    本文标题:学员Ray Day-6 学习R包

    本文链接:https://www.haomeiwen.com/subject/yuhemktx.html