一、函数与实参
形式参数和实际参数
seq(from=3,to=21,by=3)
seq是函数
形式参数:模板,由函数作者所设置,可以不写
实际参数:实参,使用者可以改动,可以赋值
写函数的函数——function(){}
jimmy = function(a,b,m=2){
(a+b)^m
}
jimmy是函数名称
a\b\m是形式参数
m=2是默认值
大括号内是“算法”
tips:数据框的列名不能用赋值符号要用等号,因为不是赋值;其实感觉全用等号就行了
二、R包
R包是什么? :粗略理解为多个函数的打包,有的R包里又数据,甚至只有数据没有函数;包括函数/数据、帮助文档、描述文件等。
目的:找到所有R包的学习规律
R包镜像:
R包的来源
CRAN、Bioconductor、Github
怎么装R包
怎么安装R包
安装后怎么加载R包
R包安装和使用的逻辑
R包安装成功的唯一标准:libray()没有error
# 练习4-2 安装以下所有的包
if(!require(data.table))install.packages("data.table")
if(!require(rio))install.packages("rio")
if(!require(tibble))install.packages("tibble")
if(!require(ggplot2))install.packages("ggplot2")
if(!require(ggpubr))install.packages("ggpubr")
if(!require(eoffice))install.packages("eoffice")
if(!require(patchwork))install.packages("patchwork")
if(!require(tidyr))install.packages("tidyr")
if(!require(dplyr))install.packages("dplyr")
if(!require(stringr))install.packages("stringr")
if(!require(qlcMatrix))install.packages("qlcMatrix")
#或者用过时R包的安装方式,把历史版本包的网址传递给ad,然后用
#if require去安装包
ad = "https://cran.r-project.org/src/contrib/Archive/qlcMatrix/qlcMatrix_0.9.7.tar.gz"
if(!require(qlcMatrix))install.packages(ad,repos = NULL)
装包过程的常见疑问
1.红色的提示
2.package not available
跨版本升级时,应该循环重新安装一次所需要的包
在cran官网可以找到旧版本的包,可以copy网址导入
3.是否更新
4.加载A包,却报告B包不存在
R包之间还有相互嵌套的关系,使用A包需要依赖B包和C包等
5.依赖的包不够新
6.网络和联网问题
7.管理员权限
8.中文用户名
R包如何使用——获取帮助
1. 快速查看函数的帮助文档
如 ?sd
2.网络检索
limma package
3.Vignettes browseVignettes("limma")
列出包里都打包了那些函数或数据——ls("package: limma")
解决代码问题的思维
三、文件读写
1. 应用.project管理工作目录
这个问题是因为,这个ex3.csv实际上全称是ex3.csv.csv,用户命名的时候命名了.csv,实际上文件还有一个.csv的后缀
2.文件读取
read.csv() #用于.csv格式的文件
read.table() #用于读取.txt格式的文件
read.系列函数
3.数据框导出
4.用于读取/导出的包
四、文件读写实操
1. 读取ex1.txt
发现问题,列名的一排变成了第一行,第一行应该是表头的
看到了函数描述里面的header,对header进行赋值实参
2.读取ex2.csv