前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生信学习-Day6-学习R包

生信学习-Day6-学习R包

原创
作者头像
POLU
修改2024-01-21 11:29:12
1470
修改2024-01-21 11:29:12
举报
文章被收录于专栏:生信学习小组生信学习小组

豆花寄语:学生信,R语言必学的原因是丰富的图表和Biocductor上面的各种生信分析R包

安装和加载R包

1 镜像设置

运行这两行代码,可以搞定

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源

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

2 安装

R包安装命令是install.(“包”)或者BiocManager::install(“包”)取决于你要安装的包存在于CRAN网站还是Biocductor,存在于哪里?可以谷歌搜到。

3 加载

library和require,两个函数均可。使用一个包,是需要先安装再加载,才能使用包里的函数。

例子:

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")

install.packages("dplyr")

library(dplyr)

测试的数据框:

test <- irisc(1:2,51:52,101:102),

在R语言中,这行代码是对数据集 iris 进行子集选择的操作。让我们分解一下代码的各个部分来理解它的含义: iris: 这是R语言中自带的一个数据集,包含了150个样本,每个样本都是不同的鸢尾花,有4个花的测量特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)和一个种类标签。 c(1:2,51:52,101:102),: 这部分是一个索引操作,用于选择数据集中的特定行。c(1:2,51:52,101:102) 创建了一个组合向量,包含了这些数字:1, 2, 51, 52, 101, 102。这些数字代表 iris 数据集中的行号。 irisc(1:2,51:52,101:102),: 这个整体表达式的意思是从 iris 数据集中选择行号为1, 2, 51, 52, 101, 102的行。逗号之后的空位表示选择这些行的所有列(即所有的特征和标签)。 test <-: 这是赋值操作,它会将选择的子集保存到一个新的变量 test 中。 综上所述,这行代码的作用是创建一个新的数据框 test,它包含了 iris 数据集中的第1、2、51、52、101、102行.

4 五个基础函数

1.新增列:mutate()

2.选择列(按列筛选)

列号:

(1)select(test,1)#选择第一列

(2)select(test,c(1,5))#选择第一列和第五列;(3)select(test,Sepal.Length)

列名:

(1)select(test, Petal.Length, Petal.Width)

(2)vars <- c("Petal.Length", "Petal.Width")

select(test, one_of(vars))

创建了一个名为 vars 的新变量,它是一个字符向量。在这个特定的例子中,向量 vars 包含了两个元素,它们都是字符串:"Petal.Length" 和 "Petal.Width"。这两个字符串通常对应于数据框中的列名。在 iris 数据集中,Petal.Length 和 Petal.Width 分别代表花瓣的长度和宽度。 因此,当你使用 vars 变量时,你实际上是在引用那些具有这些名称的列。这样做的目的通常是为了在后续的函数调用中简化代码,特别是在你想要操作数据框中特定的列时。 这会从 your_data_frame 数据框中选择列名与 vars 向量中的字符串相匹配的列。在这个上下文中,your_data_frame 应该被替换为你想要操作的实际数据框的名字。

3.按行筛选

(1)filter(test, Species == "setosa")

(2)filter(test, Species == "setosa"&Sepal.Length > 5 ) &=And

(3)filter(test, Species %in% c("setosa","versicolor"))

在R语言中,%in%是一个匹配操作符,用于测试一个值是否在某个集合中。在dplyr包的filter()函数中使用时,它可以用于筛选数据框中匹配给定集合中任一值的行。这行代码的作用如下: filter(test, ...): 在test数据框中筛选行。 Species %in% c("setosa", "versicolor"): 选择Species列中的值是"setosa"或"versicolor"的行。 执行这个操作后,你将得到一个新的数据框,其中只包含test数据框中Species列值为"setosa"或"versicolor"的行。这相当于从原始的test数据框中筛选出所有属于"setosa"或"versicolor"这两个种类的鸢尾花样本。

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

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

arrange(test, desc(Sepal.Length))#用desc从大到小

desc(Sepal.Length): desc() 函数用于指示 arrange() 按照降序(从大到小)来排序 Sepal.Length 列。

(5)summarise():汇总.对数据进行汇总操作,结合group_by使用实用性强

summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值和标准差

先按照Species分组,计算每组Sepal.Length的平均值和标准差

group_by(test, Species)

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

5.两个实用技能

1.管道操作

具体来说,这段代码的步骤如下: test %>%:这部分将数据框test传递到下一个步骤中。 group_by(Species):这一步将数据按照Species列的不同值进行分组,即将数据集分成多个子集,每个子集包含相同Species值的数据。 summarise(mean(Sepal.Length), sd(Sepal.Length)):在每个分组内,这一步计算了Sepal.Length列的平均值(mean)和标准差(sd)。 最终的结果将是一个新的数据框,其中包含了每个不同Species值的平均Sepal.Length和标准差Sepal.Length。

6.处理数据关系

1.test1 <- data.frame(x = c('b','e','f','x'), z = c("A","B","C",'D'))

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

data.frame(): 这个函数用来创建数据框。数据框是R语言中类似于表格的二维数组结构,每一列包含了一个变量的值,每一行包含了每个变量的一个值集。 x = c('b','e','f','x'): 这部分代码创建了一个名为x的列,包含四个字符值:'b'、'e'、'f'和'x'。 z = c("A","B","C",'D'): 类似地,这部分代码创建了另一个名为z的列,包含四个字符值:'A'、'B'、'C'和'D'。test1 <-: 这是R语言中的赋值操作符,用于将data.frame()函数创建的数据框赋值给变量test1。 2.inner_join(test1, test2, by = "x")內连inner_join,取交集 在R中,inner_join(test1, test2, by = "x") 是一个使用 dplyr 包中的 inner_join 函数来合并两个数据框(data frames)的命令。这个函数执行的是一个内连接(inner join),它会将两个数据框中具有相同键值的行组合在一起。这里的 "键值" 是用于连接两个数据框的列。 详细来说: test1 和 test2 是要进行连接的两个数据框。 by = "x" 指定了连接的基础是哪一列。这意味着函数将查找 test1 和 test2 中列名为 "x" 的列,并基于这两列中的匹配值来合并行。只有当两个数据框中都存在列 "x" 且某些行在这一列的值相等时,这些行才会出现在最终的结果中。

内连接的特点是只包含两个数据框中键值匹配的行。如果 test1 中的某行在其 "x" 列中的值在 test2 的 "x" 列中没有对应值,则这行不会出现在结果中,反之亦然。

3..左连left_join

left_join(test1, test2, by = 'x')

left\_join(test2, test1, by = 'x')

4.全连`full_join

full_join( test1, test2, by = 'x')

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

semi_join(x = test1, y = test2, by = 'x'),针对test1和test2,就是bce.

x = test1:表示要在test1数据框中执行semi-join操作。 y = test2:表示要与test2数据框进行semi-join操作,即保留test1中与test2匹配的行。 by = 'x':指定要根据哪个列进行匹配。在这里,使用列x来进行匹配。 结果将是一个新的数据框,其中包含了test1中那些在test2中找到匹配项的行,而不包含在test2中找不到匹配项的行。这种操作通常用于数据集的筛选,以保留与另一个数据集相关的数据。

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

anti_join(x = test2, y = test1, by = 'x'),针对test1和test2,就是acd

这个操作的目的是从test2数据框中删除与test1数据框中的列x匹配的行。 具体来说,这行代码的作用是: x = test2:表示要从test2数据框中执行anti-join操作。 y = test1:表示要与test1数据框进行anti-join操作,即从test2中删除与test1匹配的行。 by = 'x':指定要根据哪个列进行匹配。在这里,使用列x来进行匹配。 结果将是一个新的数据框,其中包含了test2中那些在test1中找不到匹配项的行。这种操作通常用于数据集的清洗和筛选,以删除重复的或不需要的数据。

7.简单合并

test1 <- data.frame(x = c(1,2,3,4), y = c(10,20,30,40))

test2 <- data.frame(x = c(5,6), y = c(50,60))

test3 <- data.frame(z = c(100,200,300,400))

bind_rows(test1, test2)

bind_cols(test1, test3)

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装和加载R包
    • 1 镜像设置
      • 2 安装
        • 3 加载
          • 4 五个基础函数
          • 先按照Species分组,计算每组Sepal.Length的平均值和标准差
            • 5.两个实用技能
              • 6.处理数据关系
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档