一. R與Rstudio
R: 編程語言,統(tǒng)計計算和繪圖的環(huán)境。
R studio: R語言的集成開發(fā)環(huán)境
- 新建項目R project:

-
新建腳本:
- R studio界面:(1) 腳本編輯器(2) 控制臺(3) 環(huán)境/歷史命令/連接(4) 文件/圖片/幫助/包
- 字號設置:Tools-Global Options- Appearance
- 與R"交互":session(1) 控制臺窗口;(2) 腳本編輯器:逐行運行 or 選中運行;"#"為注釋;腳本保存到Rproject下
- R語言的幾類命令響應
- 輸出結果
- 報錯:Error(檢查命令/環(huán)境/糾正重運行)
- 警告:Warning(忽略)
- 沒反應(出現(xiàn)>,表示已完成)
- 命令正在運行
- 命令不完整(+后可補全)
- 出現(xiàn)提示信息(無error可忽略)
- 進一步選擇(回答問題)
二、數(shù)據類型和向量
1. 數(shù)據類型:
包括:數(shù)值型numeric, 字符型character, 邏輯型logical.
如何判斷? 使用函數(shù)class()邏輯型數(shù)據
比較運算結果的是邏輯值
<, >, <=, >=, ==, !=
多個邏輯條件的鏈接
與&、或|、非!數(shù)據類型的轉換與判斷
as族函數(shù)實現(xiàn)數(shù)據類型之間的轉換
is族函數(shù),判斷,返回值為TRUE 或FALSE數(shù)據結構
向量 vector(數(shù)據框單獨拿出來的一列);數(shù)據框 data.frame(約等于表格);矩陣 matrix;列表 list。
2. 向量
2.1 向量生成
- 用c() 逐一放到一起
c(1,2,3,5,6,7) - 連續(xù)的數(shù)字用冒號":"
1:10 - 由重復的用rep(),有規(guī)律的序列用seq(),隨機數(shù)用rnorm
rep("gene",times=15)
seq(from = 3,to = 21,by = 3)
rnorm(n = 5, mean = 3, sd = 5)
- 通過組合,產生更為復雜的向量
paste0(rep("gene",times=15),1:15)
2.2 對單個向量進行的操作
-
賦值給一個變量名 <- or =
x<- c(1,3,5) - 簡單數(shù)學計算: 根據某條件進行判斷,生成等長的邏輯向量
-
初級統(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ù)學計算
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對應的值挑選出來,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ù)據框、矩陣和列表
Vector 向量 - 一維
matrix 矩陣 - 二維 :多個長短相同、數(shù)據類型相同的向量按列組合
data.frame 數(shù)據框 :多個長短相同、數(shù)據類型可以不同的向量按列組合
List列表:數(shù)據長短可以不同、數(shù)據類型可以不同;沒有行和列的概念,可以有多級元素
1. 數(shù)據框來源
- 在R中新建
- 由已有數(shù)據轉換或處理得到
- 從文件中讀取
- 內置數(shù)據集
2. 新建數(shù)據框(本質是向量按列組合)
讀取數(shù)據框:read.csv(“gene.csv")
3. 數(shù)據框屬性描述
維度(幾行幾列):dim(df) nrow(df)/nco(df)
行名/列名 :rownames(df)/colnames(df)
4. 數(shù)據框取子集(一個、一行、一列)
4.1 向量 -位置


4.2 根據行名或列名
df[, "exp"]
4.3 提取列的常用操作
數(shù)據框常用操作:dfexp), length(df$exp)
5. 數(shù)據框編輯
取子集¥或[]+賦值操作
df[3,3]<- 5
6. 數(shù)據框進階
(1) 轉置--行變列,列變行:t(df)
(2) 去除含有缺失值的行:na.omit(df)
(3) 兩個表格的連接:
按列連接:cbind (行數(shù)相同)
按行連接:rbind (列數(shù)相同)
merge() - 根據某一相同列合并
(4) 行數(shù)較多的數(shù)據框可截取前/后幾行查看
iris, head(iris,3)
(5) 行列數(shù)都多的數(shù)據框可取前幾行前幾列查看
iris[1:3,1:3]
(6) 查看每一列的數(shù)據類型和具體內容
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ù)

寫函數(shù)的函數(shù)
R包介紹
R包來源
CRAN網站 install.packages()
Bioconductor BiocManager::install()
github devools::install_github()用于R包安裝的函數(shù)
安裝后要library()R包安裝前需設置鏡像
國內鏡像推薦:
清華鏡像
中科大鏡像
手工設置
tools - global option - packages
代碼設置
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包不存在(復雜)
- 報錯中由connection or url
網絡/鏡像檢查
- R包如何使用--獲取幫助
?函數(shù)
help函數(shù)
R包介紹頁面
少數(shù) R 包有 cheatsheets






