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 删除。