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

生信马拉松 Day4

原创
作者头像
阿呆的月历
发布2024-01-12 23:15:59
1430
发布2024-01-12 23:15:59
举报
文章被收录于专栏:生信马拉松生信马拉松

这节课同样干活满满,只挑了自己感兴趣的记了,不是特别全

1.函数与参数

(1)形式参数与实际参数

函数(括号里是形式参数,由函数作者设计,不可修改,熟练后可不写)

形式参数的内容就是实际参数,使用者可以进行改动

(2)写函数的函数

代码语言:R
复制
function()
jimmy <- function(a,b,m = 2){

  (a+b)^m

} #举例

jimmy是函数名称

function()是创造函数的函数,括号里是形式参数,有默认值就写上,例如这里的m=2

{}里的内容是实际原理,是编写函数使用的代码,每一个变量都是上面的参数,使用时填写实际参数

代码语言:R
复制
#使用示例
jimmy(a = 1,b = 2)

jimmy(1,2)

jimmy(3,6)

jimmy(3,6,-2)

函数只区分“是什么”(数据类型/数据结构),与“怎么得到的”无关

当一个代码需要复制粘贴三次,就应该写成函数或使用循环

代码语言:R
复制
#plot画iris的前四列
jimmy <- function(i){

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

}
jimmy(1)

jimmy(2)

jimmy(3)

jimmy(4)

(3) 默认参数

作者可以为参数设置默认值

不是所有的参数都要出现在使用者的代码里,没写的会使用默认值

2.R包(R package)介绍

R包可以理解为是多个函数的打包存放,也可以只有数据

包含函数、示例数据、帮助文件、描述文件等

2.1 为什么要安装R包?

为了完成特定的分析功能,需要用相应的包实现

2.2 伪问题:学一个R包要多久

按需学习,按需查询

目的不是学会某个具体的R包,而是学习使用思路

2.3 R包都在哪里

(1)CRAN网站,R的官网,可以通过install.packages()完成下载和安装,注意包名要加引号

(2)Bioconductor,用BiocMananger::install(),前提是安装好BiocMananger

其中biocLite是过时命令,使用install安装就行

(3)GitHub,用devtools::install_github(),需要写上R包作者用户名和包名,需要去网上搜索,举例 devtools::install_github('jmzeng1314/idmap1')

2.4 不知道从哪里来的包?

搜一搜或者试一试,问问ChatGPT

2.5 安装后需加载

即library或require(),差别是require()返回结果可以转化为逻辑值

一次安装,每次打开新的session都要加载

2.6 怎样实现快速下载——镜像网站

镜像网站相当于主网站的副本,访问主网站存在障碍时,可以使用访问镜像网站替代

R和bioconductor主网站位于国外,选择国内的镜像可以加快速度

方法1:tools——global options-packages——primaryCRAN repository进行修改,大机构一般都比较稳定,如果选择自己学校再用校园网可能会非常快

但这只是CRAN的修改方法,修改后访问bioconductor的地址不会变

方法2:用代码修改

代码语言:R
复制
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

options(BioC\_mirror="http://mirrors.ustc.edu.cn/bioc/") #这是改BioConductor镜像的
options(BioC\_mirror="https://mirror.sjtu.edu.cn/bioconductor") #这个是交大的镜像
#各自学校的镜像自己再搜搜

2.7 R包安装和使用的逻辑

安装包——加载包——使用包里的函数

注意有的时候函数名重复,有时代码报错是原来的R包没有加载

library()是检查R包是否安装成功的唯一标准,library没有error就代表成功

已经成功安装的包,可以用::快速调用里面的函数,但此时这个包并未在session里加载,即再次调用这个包里函数时,还得写pheatmap::pheatmap,或者重新library这个包

2.8 经典报错

情况1:

代码语言:R
复制
not installed when version(s) same as current;use 'force = TRUE' to reinstall
#已经安装了一个包,试图安装更高版本的包,不用管

情况2:

代码语言:R
复制
package not available

原因1:包名写错

原因2:安装命令使用错误,用cran安装非cran的包

原因3:本机的R语言版本与包所要求的版本不符(极少),可以选择历史版本的R包

原因4:包过时被剔除了,例如birta,也可以搜搜ChatGPT看看

!R语言版本99%的情况下没有问题,但它总是无辜被怀疑

情况3:

代码语言:R
复制
Updata all/some/none 

懒惰策略,能不更新就不更新,除非一直报错

不想回答,安装命令加参数:updata=F,ask=F

!学R语言高冷,能no就no,no不行再yes;学linux要听话,让你yes你就yes

情况4:加载A包,报错B包不存在

先安装B包再说,一般来讲问是否更新时,“不存在”的是依赖包

此时可能是依赖包未安装或依赖包版本不够新

注意:报错里的引号里大多是指一个包

R包的更新是通过卸载旧包再安装新包,方法:

打开package面板,其中前面小方格里√是已加载的包,这个√有滞后性,需要刷新一下

更新的时候先取消加载,即点掉√,然后包同一行右侧有一个小叉号,点击叉号卸载包,再重新安装

情况5:关键词connecttion,internet,url,404,http,download

一般是网络异常的关键词

可能原因:没联网、校园网限制、镜像没设置、镜像崩了

情况6:not writable/permission deny

windows专属问题,权限问题:管理员方式重新打开Rstudio,重新运行代码

或者按照小洁老师的b站视频修改R的权限问题

情况7:cannot create dir :'C:\Users\???????'

中文用户名引发,需要修改环境变量(控制面板——高级系统设置——环境变量),具体的我没太看懂,遇到的人自己搜搜吧

2.9 如何获取帮助

(1)快速查看函数帮助文档 ?+函数

(2)网页找R包介绍页面(包括可引用的文献)

(3)Vignettes R包作者的在线教程,阅读时需要package安装并加载好

代码语言:R
复制
?seq

browseVignettes("stringr")

ls("package:stringr")

2.10 R包的使用场景

1.某些流程代码中用到某些包

2.学绘图

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

大多数包里的函数规律一致,不需要单独学习,用到哪个函数学哪个函数

少部分包里的函数自有语法,例如ggplot2,dplyr

其他要点:符号的提示作用

$:数据框取列,列表取子集

=:赋值,或连接形式参数与实际参数

{}:多行代码

重要TIPS

1.分画板

代码语言:R
复制
par(mfrow = c(2,2)) #把画板分成四块,两行两列

#如果报错,把右下角画板拉大一点即可

2.一个安装package的代码块

代码语言:R
复制
if(!require(stringr))install.packages("stringr")

原理:require返回结果受 ! 影响转化为逻辑值,if(FALSE)则后面的代码被跳过,if(TRUE)则后面的代码被执行

3.ls()函数

代码语言:R
复制
ls('package:stringr') #列出包里有哪些函数

生信技能树,生信马拉松

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.函数与参数
    • (1)形式参数与实际参数
      • (2)写函数的函数
        • 函数只区分“是什么”(数据类型/数据结构),与“怎么得到的”无关
      • (3) 默认参数
        • 2.1 为什么要安装R包?
        • 2.2 伪问题:学一个R包要多久
        • 2.3 R包都在哪里
        • 2.4 不知道从哪里来的包?
        • 2.5 安装后需加载
        • 2.6 怎样实现快速下载——镜像网站
        • 2.7 R包安装和使用的逻辑
        • 2.8 经典报错
        • 情况1:
        • 情况2:
        • 情况3:
        • 情况4:加载A包,报错B包不存在
        • R包的更新是通过卸载旧包再安装新包,方法:
        • 情况5:关键词connecttion,internet,url,404,http,download
        • 情况6:not writable/permission deny
        • 情况7:cannot create dir :'C:\Users\???????'
        • 2.9 如何获取帮助
        • 2.10 R包的使用场景
    • 2.R包(R package)介绍
      • 其他要点:符号的提示作用
      • 重要TIPS
        • 1.分画板
          • 2.一个安装package的代码块
            • 3.ls()函数
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档