一. R與Rstudio
R: 編程語言,統(tǒng)計計算和繪圖的環(huán)境叠骑。
R studio: R語言的集成開發(fā)環(huán)境
- 新建項目R project:
-
新建腳本:
- R studio界面:(1) 腳本編輯器(2) 控制臺(3) 環(huán)境/歷史命令/連接(4) 文件/圖片/幫助/包
- 字號設(shè)置:Tools-Global Options- Appearance
- 與R"交互":session(1) 控制臺窗口甸饱;(2) 腳本編輯器:逐行運行 or 選中運行;"#"為注釋;腳本保存到Rproject下
- R語言的幾類命令響應(yīng)
- 輸出結(jié)果
- 報錯:Error(檢查命令/環(huán)境/糾正重運行)
- 警告:Warning(忽略)
- 沒反應(yīng)(出現(xiàn)>雄右,表示已完成)
- 命令正在運行
- 命令不完整(+后可補全)
- 出現(xiàn)提示信息(無error可忽略)
- 進一步選擇(回答問題)
二、數(shù)據(jù)類型和向量
1. 數(shù)據(jù)類型:
包括:數(shù)值型numeric, 字符型character, 邏輯型logical.
如何判斷? 使用函數(shù)class()邏輯型數(shù)據(jù)
比較運算結(jié)果的是邏輯值
<, >, <=, >=, ==, !=
多個邏輯條件的鏈接
與&纺讲、或|擂仍、非!數(shù)據(jù)類型的轉(zhuǎn)換與判斷
as族函數(shù)實現(xiàn)數(shù)據(jù)類型之間的轉(zhuǎn)換
is族函數(shù)熬甚,判斷逢渔,返回值為TRUE 或FALSE數(shù)據(jù)結(jié)構(gòu)
向量 vector(數(shù)據(jù)框單獨拿出來的一列);數(shù)據(jù)框 data.frame(約等于表格)乡括;矩陣 matrix肃廓;列表 list冲簿。
2. 向量
2.1 向量生成
- 用c() 逐一放到一起
c(1,2,3,5,6,7) - 連續(xù)的數(shù)字用冒號":"
1:10 - 由重復(fù)的用rep(),有規(guī)律的序列用seq()亿昏,隨機數(shù)用rnorm
rep("gene",times=15)
seq(from = 3,to = 21,by = 3)
rnorm(n = 5, mean = 3, sd = 5)
- 通過組合峦剔,產(chǎn)生更為復(fù)雜的向量
paste0(rep("gene",times=15),1:15)
2.2 對單個向量進行的操作
-
賦值給一個變量名 <- or =
x<- c(1,3,5)
- 簡單數(shù)學(xué)計算: 根據(jù)某條件進行判斷,生成等長的邏輯向量
-
初級統(tǒng)計
max(x), min(x), range(x), mean(x), length(x), unique(x), table(x)
2.3. 對兩個向量的操作
- 邏輯比較角钩,生成等長的邏輯向量
x = c(1,3,5)
y = c(3,2,5)
x == y
x %in% y #x中的元素在y中嗎 - 數(shù)學(xué)計算
x+y - 連接:paste
paste(x,y,sep=":")
[1] "1:3" "3:2" "5:5"
- 交集/并集/差集
intersect(x,y)
union(x,y)
setdiff(x,y)
循環(huán)補齊:x和y不一樣長
2.4. 向量篩選(取子集)
[]:將TRUE對應(yīng)的值挑選出來吝沫,F(xiàn)ALSE丟棄
> x <- 8:12
> x[x==10]
[1] 10
> x[x<12]
[1] 8 9 10 11
> x[x %in% c(9,13)]
[1] 9
> x[4]
[1] 11
> x[2:4]
[1] 9 10 11
> x[c(1,5)]
[1] 8 12
> x[-4]
[1] 8 9 10 12
> x[-(2:4)]
[1] 8 12
2.5 修改向量中某個元素
取子集+賦值
"[]" + "<-"
> x[x>3] <- 3
> x
[1] 3 3 3 3 3
三、數(shù)據(jù)框递礼、矩陣和列表
Vector 向量 - 一維
matrix 矩陣 - 二維 :多個長短相同惨险、數(shù)據(jù)類型相同的向量按列組合
data.frame 數(shù)據(jù)框 :多個長短相同、數(shù)據(jù)類型可以不同的向量按列組合
List列表:數(shù)據(jù)長短可以不同脊髓、數(shù)據(jù)類型可以不同辫愉;沒有行和列的概念,可以有多級元素
1. 數(shù)據(jù)框來源
- 在R中新建
- 由已有數(shù)據(jù)轉(zhuǎn)換或處理得到
- 從文件中讀取
- 內(nèi)置數(shù)據(jù)集
2. 新建數(shù)據(jù)框(本質(zhì)是向量按列組合)
讀取數(shù)據(jù)框:read.csv(“gene.csv")
3. 數(shù)據(jù)框?qū)傩悦枋?/h2>
維度(幾行幾列):dim(df) nrow(df)/nco(df)
行名/列名 :rownames(df)/colnames(df)
4. 數(shù)據(jù)框取子集(一個将硝、一行恭朗、一列)
4.1 向量 -位置
4.2 根據(jù)行名或列名
df[, "exp"]
4.3 提取列的常用操作
數(shù)據(jù)框常用操作:dfexp), length(df$exp)
5. 數(shù)據(jù)框編輯
取子集¥或[]+賦值操作
df[3,3]<- 5
6. 數(shù)據(jù)框進階
(1) 轉(zhuǎn)置--行變列,列變行:t(df)
(2) 去除含有缺失值的行:na.omit(df)
(3) 兩個表格的連接:
按列連接:cbind (行數(shù)相同)
按行連接:rbind (列數(shù)相同)
merge() - 根據(jù)某一相同列合并
(4) 行數(shù)較多的數(shù)據(jù)框可截取前/后幾行查看
iris, head(iris,3)
(5) 行列數(shù)都多的數(shù)據(jù)框可取前幾行前幾列查看
iris[1:3,1:3]
(6) 查看每一列的數(shù)據(jù)類型和具體內(nèi)容
str(df)
str(iris)
-
矩陣新建和取子集
m <- matrix(1:9,nrow=3)
- 列表新建和取子集
l <- list(m=matrix(1:9, nrow = 3),
df=data.frame(gene = paste0("gene",1:3),
sam = paste0("sample",1:3),
exp = c(32,34,45)),
x=c(1,3,5)) -
刪除變量
四依疼、函數(shù)和R包
-
函數(shù)與參數(shù)
![](https://upload-images.jianshu.io/upload_images/19530557-466511b4c6ac26c2.png?imageMogr2/auto-
orient/strip%7CimageView2/2/w/1240)
寫函數(shù)的函數(shù)
R包介紹
R包來源
CRAN網(wǎng)站 install.packages()
Bioconductor BiocManager::install()
github devools::install_github()用于R包安裝的函數(shù)
安裝后要library()R包安裝前需設(shè)置鏡像
國內(nèi)鏡像推薦:
清華鏡像
中科大鏡像
手工設(shè)置
tools - global option - packages
代碼設(shè)置
options("repos"=c(CRAN="https://mir
rors.tuna.tsinghua.edu.cn/CRAN/"))
options(
BioC_mirror ="https://
ustc.edu.cn/ biocR包安裝和使用的邏輯
安裝包-加載包-使用函數(shù)
已安裝痰腮、不加載-直接使用::常見疑問
- 大片提示信息:檢查error,無可忽略
- package not available
原因1 :包名寫錯
原因2 :安裝命令使用錯誤
原因3 :本機的 R 語言版本與包所要求的版本不符(極少) - 是否更新
- 加載A包,報錯B包不存在(復(fù)雜)
- 報錯中由connection or url
網(wǎng)絡(luò)/鏡像檢查
- R包如何使用--獲取幫助
律罢?函數(shù)
help函數(shù)
R包介紹頁面
少數(shù) R 包有 cheatsheets