前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jely's Note之生信入门class4

Jely's Note之生信入门class4

原创
作者头像
用户10556369
发布2023-05-17 20:50:13
1730
发布2023-05-17 20:50:13
举报
文章被收录于专栏:Jely’s生信笔记Jely’s生信笔记

class 4

#本文引用自生信技能树

一、课前导言

【R语言的版本99%的情况下没有问题,最后才应考虑是他的问题】

【R语言报错让你选择时,先选否定的答案,如果还不行,就该yes就yes;而

linux报错时有选择则应该优先选yes就yes】

【装R包的时候报错,有引号大概率就是包的名字】

【列表很多情况下不能传递数据,而热图只接受矩阵】

二、【练习题】

探索列表list取子集l[2]和l[[2]]的区别

区别是:

1.l[2] 返回的是列表 l 的第二个元素(注意,是一个长度为 1 的列表),而不是该元素所包含的对象。如果你想取出该元素所包含的对象,需要再加上一个 [[ ]]。

例如,如果有一个列表 l,其中包含三个向量 A、B、C,那么 l[2] 返回的是一个长度为 1 的列表,元素为 B 向量所在的子列表;而 l[[2]] 返回的则是 B 向量。

2.两个中括号是矩阵

l[[2]] 直接返回列表 l 的第二个元素所包含的对象,而不是一个长度为 1 的列表。这种方法相当于对列表 l 进行了一次单独的取值操作。因此,如果你想要取出具体的向量或数据框等对象,应该使用双括号操作符。

三、【讲课内容:函数和R包】

1.写函数

(1)形式参数与实际参数:seq(from=3,to=21,by=3)

· 括号前的英文单词=函数

· 括号内是函数的辖区,内有形式参数=from,to,by【熟悉后,对应位置参数顺序固定!=位置对应,变量名称不写也行】

· 数字是实际参数,可以修改的

(2)写函数的函数是function,function可定义函数

· 函数名称可随意定义,如jimmy

· 函数后赋值给function,function后先小括号【包含形式参数的默认值】小括号后接大括号【编写函数使用的代码】

【其中 形式参数,将用户给定的值带入函数得出结果】

eg.

> jimmy <- function(a,b,m = 2){

+ (a+b)^m}

> jimmy(a = 1,b = 2)

[1] 9

> jimmy(1,2),顺序固定,可省略形式参数

[1] 9

> jimmy(3,6,-2),m=-2

[1] 0.01234568

eg.

g=function(x){mean(x)+2*sd(x)}

g=(rnorm(10))

2.绘图函数plot()点状图:plot(x)需要数值型向量!!!

x = c(2,5,6,2,9);plot(x):横坐标是坐标、纵坐标是x

x = seq(2,80,4);plot(x):数据大了,看起来会有趋势

x = rnorm(10);plot(x):随机数

x = iris$Sepal.Length;plot(x)

【plot()是画图代码!用plot()函数画图,对于x是如何生成的,如何赋值的无关!!】

plot(iris[,1],col = iris[,5])

iris按第一列数据来画图、iris第五列来分配颜色、col颜色!画图时很多东西都是默认

3.函数自定义【!当一个代码需要复制粘贴三次,就应该写成函数或使用循环】

jimmy <- function(i){plot(iris[,i],col=iris[,5])}i为参数!

jimmy(1/2/3/4/5)相应的画出五张点状图

4.R包【找到R包的使用规则】

(1)是什么? 多个函数的打包存放:包含函数、数据、帮助文件、描述文件

(2)为什么要装R包【不断在更新】具有特定的分析功能

5.R包使用规律

(1)R包在哪?及安装代码【怎么安装,就按什么网站来的】

· CRAN网站!用install.packages

eg.install.packages("tidyr")

· bioconductor网站!用BiocManager::install()

eg.BiocManager::install("ggplot2")

·github用devtools::install_github(”括号里写作者用户名/加包名“)

eg.devtools::install_github("jmzeng1314/idmap1")

通用解决办法:试一试、搜一搜、问chatgtp

(2)R包的加载、打开方式一样:

最常用的是:library()、require()

eg.library(tidyr)

require(tidyr)

注意:library()一旦报错就是没安装成功

可以将install要与library合用

当library()不报错,才是安装成功

(3)怎么实现快速下载

# 清华镜像http://mirrors.tuna.tsinghua.edu.cn/CRAN/

# http://mirrors.tuna.tsinghua.edu.cn/bioconductor/

# 中科大镜像

# http://mirrors.ustc.edu.cn/CRAN/

# http://mirrors.ustc.edu.cn/bioc/

【镜像与距离无关!!!为了加快访问速度!】

下载的方法

· 方法1【代码在脚本里】

· 方法2【每次使用都要运行,一次性的】

options("repos"=c(CRAN=""))

options(BioC_mirror="xxxx")

(4)R包的安装和使用的逻辑

函数存在于R 包内;电脑上没装这个包=不存在叫xxx的程序包

不报错不代表安装好了!直到library()不报错为止!!!

(5)R包的使用逻辑

包名::函数名可以快速调用里面的函数

(6)R包的使用场景

某流程代码中用到某些包

学绘图,用到ggplot2

别人的代码套自己的数据,报错不会改

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档