DAY4 生信技能树-数据挖掘第三期学习笔记

Ruizheng 的学习笔记

感谢 生信技能树 小洁老师

函数与参数
  1. 形式参数与实际参数


    函数的几个概念
  2. 写函数的函数
    function() {}
补充知识:绘图函数 plot()
x = rnorm(10); plot(x)
plot(iris[,1], col = iris[,5])
plot(iris[,1], col = iris[,5])
  1. 默认参数
    作者会设计很多参数,但只有前1-n个是必须填的,其他的的参数都有默认值。
    默认参数
自己写一个小函数
g <- function(x){
  c(mean(x),median(x))
}

tips: 有多个输出结果时,将输出的结果组成一个向量; 当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return

R包(R package)介绍
  • R程序包是多个函数的集合,具有详细的说明和示例
  • 也有的R包只有数据,没有函数
  • 包含R函数、数据、帮助文件、描述文件等
  • 特定的分析功能,需要用相应的程序来实现
R包来源
  1. CRAN网站 install.packages()
  2. Bioconductor BiocManager::install()
  3. github devtools::install_github()


    用于R包安装的函数
(国内)R包安装前需设置镜像
  • tools–global option-packages
  • 代码设置
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
R包安装和使用的逻辑
  1. 安装包
    加载包
    使用包里的函数
  2. 已安装、不加载,直接使用

通常用于实战中仅用一次的函数,也适用于两个包中的函数名有冲突的情况。

BiocManager::install()
dplyr::filter()
常见疑问
1. 大片提示信息

检查是否有error,没有就忽略

2. packages not available
  • 包名写错
  • 安装命令使用错误
  • 本机的R语言版本与包所要求的版本不符 (极少)
3. 是否更新

懒惰策略,能不更新就不更新,除非一直报错
不想回答:安装命令加参数:update = F, ask = F

4.加载A包,报错B包不存在

下载那个不存在的包…

5.报错中有connection或url

网络问题
切换镜像,检查网络连接。如果都没有问题,运行

options(download.file.method = 'libcurl')
options(url.method='libcurl')
满分操作:判断式安装
if(!require(stringr))install.packages("stringr")
R包的使用场景
  • 某流程代码中用到某些包
  • 学绘图,用到ggplot2
  • 别人的代码套自己的数据,报错不会改
  • 大多数包里的函数规律一致,不需要单独学习,用到哪个函数学习那个函数
  • 少数包的函数自有语法,例如ggplot2, dplyr等
R包如何使用-获取帮助
  • 快速查看函数帮助文档
?max
help(max)
  • 找R包介绍页面(CRAN或者Bioconductor)
  • 少数R包有 Cheat sheet
R语言里的符号

() 函数
[] 向量、数据框取子集
[[]] 列表取子集
$ 数据框取列
= ,<- 赋值
== 判断是否相等
! 否定
{} 多行代码
井号# 注释
"" 字符串
:: 包::函数

认清函数与数据

函数
形式函数
实际函数
数据框或矩阵
列表
文件名

数据的读取

test = read.csv("ex3.csv")
  • 常见分隔符:逗号 空格 制表符 (\t)
  • 后缀名没有意义,只是人为定义的格式,约定俗成。在windows电脑上可以更好地绑定打开该文件的软件
  • 本质都是纯文本
read.csv()
read.table()

直接读取如果失败,需要准备一些参数

R文件保存
write.csv()
save()
load()
Rproject组织形式
  1. script .R
  2. R文件 .RData
  3. 数据 .csv .txt
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。