Ruizheng 的學(xué)習(xí)筆記
感謝 生信技能樹(shù) 小潔老師
函數(shù)與參數(shù)
-
形式參數(shù)與實(shí)際參數(shù)
- 寫函數(shù)的函數(shù)
function() {}
補(bǔ)充知識(shí):繪圖函數(shù) plot()
x = rnorm(10); plot(x)
plot(iris[,1], col = iris[,5])
- 默認(rèn)參數(shù)
作者會(huì)設(shè)計(jì)很多參數(shù),但只有前1-n個(gè)是必須填的流译,其他的的參數(shù)都有默認(rèn)值者疤。
自己寫一個(gè)小函數(shù)
g <- function(x){
c(mean(x),median(x))
}
tips: 有多個(gè)輸出結(jié)果時(shí)驹马,將輸出的結(jié)果組成一個(gè)向量; 當(dāng)一個(gè)函數(shù)里需要返回多個(gè)值(比如有變量,有向量糯累,有矩陣)時(shí),我們要用list,而不是return
R包(R package)介紹
- R程序包是多個(gè)函數(shù)的集合效拭,具有詳細(xì)的說(shuō)明和示例
- 也有的R包只有數(shù)據(jù),沒(méi)有函數(shù)
- 包含R函數(shù)借笙、數(shù)據(jù)较锡、幫助文件蚂蕴、描述文件等
- 特定的分析功能俯邓,需要用相應(yīng)的程序來(lái)實(shí)現(xiàn)
R包來(lái)源
- CRAN網(wǎng)站 install.packages()
- Bioconductor BiocManager::install()
-
github devtools::install_github()
(國(guó)內(nèi))R包安裝前需設(shè)置鏡像
- tools–global option-packages
- 代碼設(shè)置
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
R包安裝和使用的邏輯
- 安裝包
加載包
使用包里的函數(shù) - 已安裝、不加載稽鞭,直接使用
通常用于實(shí)戰(zhàn)中僅用一次的函數(shù)朦蕴,也適用于兩個(gè)包中的函數(shù)名有沖突的情況。
BiocManager::install()
dplyr::filter()
常見(jiàn)疑問(wèn)
1. 大片提示信息
檢查是否有error吩抓,沒(méi)有就忽略
2. packages not available
- 包名寫錯(cuò)
- 安裝命令使用錯(cuò)誤
- 本機(jī)的R語(yǔ)言版本與包所要求的版本不符 (極少)
3. 是否更新
懶惰策略,能不更新就不更新伴栓,除非一直報(bào)錯(cuò)
不想回答:安裝命令加參數(shù):update = F, ask = F
4.加載A包钳垮,報(bào)錯(cuò)B包不存在
下載那個(gè)不存在的包…
5.報(bào)錯(cuò)中有connection或url
網(wǎng)絡(luò)問(wèn)題
切換鏡像额港,檢查網(wǎng)絡(luò)連接。如果都沒(méi)有問(wèn)題锹安,運(yùn)行
options(download.file.method = 'libcurl')
options(url.method='libcurl')
滿分操作:判斷式安裝
if(!require(stringr))install.packages("stringr")
R包的使用場(chǎng)景
- 某流程代碼中用到某些包
- 學(xué)繪圖叹哭,用到ggplot2
- 別人的代碼套自己的數(shù)據(jù),報(bào)錯(cuò)不會(huì)改
- 大多數(shù)包里的函數(shù)規(guī)律一致糠排,不需要單獨(dú)學(xué)習(xí),用到哪個(gè)函數(shù)學(xué)習(xí)那個(gè)函數(shù)
- 少數(shù)包的函數(shù)自有語(yǔ)法入宦,例如ggplot2, dplyr等
R包如何使用-獲取幫助
- 快速查看函數(shù)幫助文檔
?max
help(max)
- 找R包介紹頁(yè)面(CRAN或者Bioconductor)
- 少數(shù)R包有 Cheat sheet
R語(yǔ)言里的符號(hào)
() 函數(shù)
[] 向量、數(shù)據(jù)框取子集
[[]] 列表取子集
$ 數(shù)據(jù)框取列
= ,<- 賦值
== 判斷是否相等
! 否定
{} 多行代碼
井號(hào)# 注釋
"" 字符串
:: 包::函數(shù)
認(rèn)清函數(shù)與數(shù)據(jù)
函數(shù)
形式函數(shù)
實(shí)際函數(shù)
數(shù)據(jù)框或矩陣
列表
文件名
包
數(shù)據(jù)的讀取
test = read.csv("ex3.csv")
- 常見(jiàn)分隔符:逗號(hào) 空格 制表符 (\t)
- 后綴名沒(méi)有意義落追,只是人為定義的格式轿钠,約定俗成。在windows電腦上可以更好地綁定打開(kāi)該文件的軟件
- 本質(zhì)都是純文本
read.csv()
read.table()
直接讀取如果失敗疗垛,需要準(zhǔn)備一些參數(shù)
R文件保存
write.csv()
save()
load()
Rproject組織形式
- script .R
- R文件 .RData
- 數(shù)據(jù) .csv .txt