宏基因組按:科研中數據分析解讀佔用了我們太多時間,學習R語言是生物測序領域數據(reads count表)分析及可視化的首選。舉個例子,擴增子分析從fastq到OTU表至多是de novo或reference兩種套路(1-3天)。而對OTU表開始的組間比較、網絡分析、機器學習等會有上百種方法和展示方式,每一篇優秀的文章,都是數據反覆咀嚼上百次優化出來的結果(3個月-3年),而這一漫長的科研之路有R語言技能的相伴,可將統計分析可視化操作一網打盡,定能助你事半功倍。
前期公眾號己分享了擴增子、宏基因組分析流程及可視化文章上百篇,但一直缺少基礎入門的知識。今天起分享一位從18年3月1號剛要從wet轉dry的學生零基礎學習筆記,供初學者學習,雖然筆記會有不系統的地方,但也正是初學者需要經歷和面對的,希望想入行的快上車,共同學習,一起成長。
學習R語言,需要先安裝R語言,只需要從 https://www.r-project.org/ 下載適合你系統的最新版本軟體安裝即可。R語言有個優秀的環境叫Rstudio,具體安裝可參考 《R語言學習 - 入門環境Rstudio》一文。
R語言中的數據類型(Data Types)R語言的對象(Objects)主要包括向量、矩陣、數組、數據框和列表。
R語言的對象有五種最基本的類型,即,字符型(character)、數值型(numeric,包括小數)、整型(integer)、複數型(complex)以及邏輯型(logical,TRUE/FALSE)
屬性是R語言對象的一部分。主要包括以下幾種:名字(names,dimnames),維度(dimensions,包括矩陣等),類別(class,包括數字、整數等),長度(length),以及其他。可通過 attributes()函數查看對象的屬性,不是所有對象都有屬性,如果沒有則返回NULL。
1. 向量向量(vector)是R語言中最基本的數據類型,執行組合功能的函數 c()可用來創建向量。
各類向量如下例所示:
a <- c (1, 2, 7, -4, 5) ## numeric
b <- c ("Rice", "Wheat") ## character
c <- c (TRUE, TRUE, FALSE, TRUE) ## logical
d <- c (1+0i, 2+4i) ## complex
e <- c (9:17) ## integer
注意:單個向量中的數據必須擁有相同的類型(數值型、字符型或邏輯型)。
創建空向量可以使用 vector()函數。例如創建一個指定長度為10、類型為數值型的空向量:
> x <- vector("numeric", length = 10)
> x
[1] 0 0 0 0 0 0 0 0 0 0
另外,標量是只含一個元素的向量,它們用於保存常量。例如
f <- 3
g <- "US"
h <- TRUE
2. 矩陣矩陣(matrice)是具有維度屬性的向量,矩陣都是二維的,和向量類似,矩陣中也僅能包含一種數據類型。
主要有三種創建矩陣的方法:
(1)直接創建
例:數字1-20自動創建為一個5行4列的矩陣,自動填充第一列之後開始填充第二列
y <- matrix(1:20, nrow = 5, ncol = 4)
> y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> dim(y)
[1] 5 4 ##dim()看維度,5行4列
(2)矢量+維度向量
添加維度向量 dim()是將矢量轉變為矩陣的方法
> m <- c(1:10)
> m
[1] 1 2 3 4 5 6 7 8 9 10
> dim(m) <- c(2,5) ##2行5列
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
(3)綁定行或列來創建矩陣
綁定行或綁定列可以通過 cbind()和 rbind()來實現
> x <- 1:3
> y <- 10:12
> cbind (x, y)
x y
[1,] 1 10
[2,] 2 11
[3,] 3 12
> rbind (x, y)
[,1] [,2] [,3]
x 1 2 3
y 10 11 12
3. 數組數組(array)與矩陣類似,但是維度可以大於2。數組可通過array函數創建。
4. 列表列表(list)是一種可包含多種不同類型對象的向量,是一些對象(或成分,component)的有序集合。
> x <- list(1, "a", TRUE, 1 + 4i)
> x
[[1]]
[1] 1
[[2]]
[1] "a"
[[3]]
[1] TRUE
[[4]]
[1] 1+4i
5.數據框數據框(Data Frames)是一種特殊的列表,其中所用元素長度都相等,列表中的每個元素都可以看作一列,每個元素的長度可以看作行數。
創建顯式數據框的方法是 data.frame()
> ID <- c(1,2,3,4)
> age <- c(25,26,55,43)
> diabetes <- c("Type1","Type2","Type3","Type1")
> status <- c("Poor", "Improved", "Excellent","Poor")
> data <- data.frame(ID, age, diabetes, status)
> data
ID age diabetes status
1 1 25 Type1 Poor
2 2 26 Type2 Improved
3 3 55 Type3 Excellent
4 4 43 Type1 Poor
參考資料:
https://bookdown.org/rdpeng/rprogdatascience/R Programming for Data Science
《R語言實戰》 Robert I. Kabacoff
猜你喜歡寫在後面為鼓勵讀者交流、快速解決科研困難,我們建立了「宏基因組」專業討論群,目前己有國內外120+ PI,1200+ 一線科研人員加入。參與討論,獲得專業解答,歡迎分享此文至朋友圈,並掃碼加主編好友帶你入群,務必備註「姓名-單位-研究方向-職稱/年級」。技術問題尋求幫助,首先閱讀《如何優雅的提問》學習解決問題思路,仍末解決群內討論,問題不私聊,幫助同行。
學習16S擴增子、宏基因組科研思路和分析實戰,關注「宏基因組」