如下图所示,形式参数是函数作者设计的,熟练之后可省略;
实际参数是使用者定的值,可以随需求改动;
默认参数是函数作者预先设置的,使用函数时不是所有参数都需要使用者指定,没指定的都使用默认值;
jimmy <- function(a,b,m = 2){
(a+b)^m
}
# jimmy是函数名称;a,b,m是形式参数,2是m的默认值;大括号里是编写函数的代码;
#函数的使用:
jimmy(a = 1,b = 2)
#熟悉之后可以省略函数的形式参数:
jimmy(1,2)
jimmy(3,6)
jimmy(3,6,-2)
注①:函数只区分数据是什么,不管数据是怎么来的;
par(mfrow = c(2,2)) #把画板分成四块,两行两列;如果报错,把右下角画板拉大一点即可
x = c(2,5,6,2,9);plot(x)
x = seq(2,80,4);plot(x)
x = rnorm(10);plot(x)
x = iris$Sepal.Length;plot(x)
注②:用相同的代码画不同的数据——用写函数代替复制粘贴——当一个代码需要复制粘贴3次,就应该写成函数或循环;
#思考:plot画iris的前四列?
plot(iris[,1],col = iris[,5])
plot(iris[,2],col = iris[,5])
plot(iris[,3],col = iris[,5])
plot(iris[,4],col = iris[,5])
#当一个代码需要复制粘贴三次,就应该写成函数或使用循环
jimmy <- function(i){
plot(iris[,i],col=iris[,5])
}
jimmy(1)
jimmy(2)
jimmy(3)
jimmy(4)
写一个函数,参数是一个数值型向量,输出结果是该向量的平均值加2倍的标准差,并写出用户使用该函数的代码 。
r4 <- function(x){
mean(x)+2*sd(x)
}
a=c(1,2,3,4)
sd(a)
mean(a)
r4(a)
R包是多个函数/数据打包存放的东西;
特色功能需要使用特殊包;
不同来源的包需要用不同的安装方式;
不知道来源可以查一查或者拿不同命令试一试;
install.packages()
安装CRAN官方R包们;
BiocManager::install()
安装来自Bioconductor的包;
devtools::install_github()
安装来自github的包;
#实例:
install.packages("tidyr")
install.packages('BiocManager')
BiocManager::install("ggplot2")
install.packages('devtools')
devtools::install_github("jmzeng1314/idmap1") #括号里写作者用户名加包名
library()
require()
安装只要安装一遍,但是每次打开新的session都要重新加载;
快捷方式:将加载和使用合并,直接调用已经安装的包里的某个函数:包名::函数名()
;等价于先library再用(如图所示);
CRAN的镜像可以通过tools -- global option -- packages手动设置,但是bioconductor的镜像只能通过代码设置;
# 清华镜像
# 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/
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
理论上:安装包--加载包--使用包里的函数;
实际上:使用函数发现没有加载包;加载包发现没有安装;然后去安装;
安装成功的唯一标准:library()
没有error
没有error就没问题;大片红色代码只是工作汇报
可能原因——
①包名写错了;
②安装命令不对口;
③本机R语言版本太旧(R语言版本99%的情况下没有问题,但总是无辜被怀疑);
④包过时了已经被剔除了(实在需要的话可以下载以后本地安装);
①先把依赖的那个包安装上就能解决;
②R包之间存在复杂的依赖关系,使用A包就必须同时使用BC,B、C又依赖于D,就会一装装一堆;
①重装一下需要的包;
②update.packages()
会更新所有的包;
报错关键词: connection / internet / url / 404 / http/download;
解决办法:换个网络/换个镜像;
报错关键词:not writable / permission denied
解决办法:用管理员权限打开/设置管理员权限
中文用户名的问题,可以修改环境变量
-(1)什么时候会需要用到R包——某些流程代码用到某个包;
-(2)学绘图——用到ggplot2;
-(3)大部分包里的函数规律一致,少部分会有自己的特殊语法(如ggplot2);
-(4)学习R包——快速查看帮助文档/找R包的帮助界面/搜索引擎;
?seq #快速查看函数帮助文档
library(stringr)
browseVignettes("stringr") #在线教程
-(5)关于ls: 列出环境里的每一个变量,也可以用于列出一个包里有什么函数/数据
ls("package:stringr")
反复强调:文件名称必须带引号,且在能够识别文件名称的函数括号里面、实际参数的位置。
打好基础知识再也不在安装R包的时候被拦住!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。