前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生信星球学习小组笔记 Day 6——LIU

生信星球学习小组笔记 Day 6——LIU

原创
作者头像
用户10360377
发布2023-12-03 02:14:13
1490
发布2023-12-03 02:14:13
举报

生信星球学习小组笔记 2023年12月2日

一、R包的下载与装载

设置镜像(解决因网络问题不能下载)

代码语言:txt
复制
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源

options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源

其次,在Rstudio→Tools→Global options→Packages里面也能设置。

安装命令

install.packages(“package”) or BiocManager::install(“package”) 前者是安装来源于CRAN网站的包,后者是来源于Bioconductor网站的包。

加载

一般用library("package")即可

二、R包的使用方法(以dplyr包为例)

*示例数据

代码语言:txt
复制
test <- iris[c(1:2,51:52,101:102),]
> head(test) #head()函数观察下数据的前6行
    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

1. mutate(),新增列。观察最后一列

代码语言:txt
复制
mutate(test, new = Sepal.Length * Sepal.Width)
> 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
51           7.0         3.2          4.7         1.4 versicolor 22.40
52           6.4         3.2          4.5         1.5 versicolor 20.48
101          6.3         3.3          6.0         2.5  virginica 20.79
102          5.8         2.7          5.1         1.9  virginica 15.66

2.select(),按列筛选。注意与[]方式取值相比较

代码语言:txt
复制
select(test,1) #列号
> 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, Petal.Length, Petal.Width) #列名
> select(test, Petal.Length, Petal.Width)
    Petal.Length Petal.Width
1            1.4         0.2
2            1.4         0.2
51           4.7         1.4
52           4.5         1.5
101          6.0         2.5
102          5.1         1.9

3.filter()筛选行

代码语言:txt
复制
filter(test, Species == "setosa"&Sepal.Length > 5 ) #此处结合了逻辑取值
> 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

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

代码语言:txt
复制
arrange(test, desc(Sepal.Length)) #此处利用desc更改了排序方向
> arrange(test, desc(Sepal.Length))
  Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1          7.0         3.2          4.7         1.4 versicolor
2          6.4         3.2          4.5         1.5 versicolor
3          6.3         3.3          6.0         2.5  virginica
4          5.8         2.7          5.1         1.9  virginica
5          5.1         3.5          1.4         0.2     setosa
6          4.9         3.0          1.4         0.2     setosa

5.summarise():汇总。★结合group_by可以高效汇总

此处需要详细的视频进行理解!

强烈推荐珍藏视频,来自张敬信老师的语法串讲

https://www.bilibili.com/video/BV1HQ4y1v75M

tidyverse包中还有一个非常重要的工具:管道。%>%,在视频中也有讲解!

三、dplyr处理关系数据

设置练习数据

代码语言:txt
复制
test1 <- data.frame(x = c('red','blue','yellow','green'), z = c("A","B","C",'D'))
test2 <- data.frame(x = c('pink','orange','red','blue'),  y = c(1,2,3,4))

1.內连inner_join,取交集

代码语言:txt
复制
inner_join(test1, test2, by = "x") #test1和test2按照x列中都有的取
> inner_join(test1, test2, by = "x")
     x z y
1  red A 3
2 blue B 4

2.左连left_join

代码语言:txt
复制
left_join(test1, test2, by = 'x') #以test1为主要的,按照x列合并test2
> left_join(test1, test2, by = 'x')
       x z  y
1    red A  3
2   blue B  4
3 yellow C NA
4  green D NA

3.全连full_join

代码语言:txt
复制
full_join( test1, test2, by = 'x') #取全集
> full_join( test1, test2, by = 'x')
       x    z  y
1    red    A  3
2   blue    B  4
3 yellow    C NA
4  green    D NA
5   pink <NA>  1
6 orange <NA>  2

4.半连接:返回能够与y表匹配的x表所有记录semi_join

代码语言:txt
复制
semi_join(x = test1, y = test2, by = 'x') #注意是谁匹配谁
> semi_join(x = test1, y = test2, by = 'x')
     x z
1  red A
2 blue B

5.反连接:返回无法与y表匹配的x表的所记录anti_join

代码语言:txt
复制
anti_join(x = test2, y = test1, by = 'x')
> anti_join(x = test2, y = test1, by = 'x')
       x y
1   pink 1
2 orange 2

6.简单合并

代码语言:txt
复制
bind_rows(test1, test2)
> bind_rows(test1, test2)
       x    z  y
1    red    A NA
2   blue    B NA
3 yellow    C NA
4  green    D NA
5   pink <NA>  1
6 orange <NA>  2
7    red <NA>  3
8   blue <NA>  4
#还有bind_cols()

再次强烈推荐珍藏视频,来自张敬信老师的语法串讲

https://www.bilibili.com/video/BV1HQ4y1v75M

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生信星球学习小组笔记 2023年12月2日
    • 一、R包的下载与装载
      • 设置镜像(解决因网络问题不能下载)
      • 安装命令
      • 加载
    • 二、R包的使用方法(以dplyr包为例)
      • *示例数据
      • 1. mutate(),新增列。观察最后一列
      • 2.select(),按列筛选。注意与[]方式取值相比较
      • 3.filter()筛选行
      • 4.arrange(),按某1列或某几列对整个表格进行排序
      • 5.summarise():汇总。★结合group_by可以高效汇总
    • 三、dplyr处理关系数据
      • 1.內连inner_join,取交集
      • 2.左连left_join
      • 3.全连full_join
      • 4.半连接:返回能够与y表匹配的x表所有记录semi_join
      • 5.反连接:返回无法与y表匹配的x表的所记录anti_join
      • 6.简单合并
    • 再次强烈推荐珍藏视频,来自张敬信老师的语法串讲
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档