宏基因組按:科研中數(shù)據(jù)分析解讀占用了我們太多時(shí)間,學(xué)習(xí)R語言是生物測序領(lǐng)域數(shù)據(jù)(reads count表)分析及可視化的首選。舉個(gè)例子,擴(kuò)增子分析從fastq到OTU表至多是de novo或reference兩種套路(1-3天)。而對OTU表開始的組間比較、網(wǎng)絡(luò)分析、機(jī)器學(xué)習(xí)等會(huì)有上百種方法和展示方式,每一篇優(yōu)秀的文章,都是數(shù)據(jù)反復(fù)咀嚼上百次優(yōu)化出來的結(jié)果(3個(gè)月-3年),而這一漫長的科研之路有R語言技能的相伴,可將統(tǒng)計(jì)分析可視化操作一網(wǎng)打盡,定能助你事半功倍。 前期公眾號己分享了擴(kuò)增子、宏基因組分析流程及可視化文章上百篇,但一直缺少基礎(chǔ)入門的知識(shí)。今天起分享一位從18年3月1號剛要從wet轉(zhuǎn)dry的學(xué)生零基礎(chǔ)學(xué)習(xí)筆記,供初學(xué)者學(xué)習(xí),雖然筆記會(huì)有不系統(tǒng)的地方,但也正是初學(xué)者需要經(jīng)歷和面對的,希望想入行的快上車,共同學(xué)習(xí),一起成長。
學(xué)習(xí)R語言,需要先安裝R語言,只需要從 https://www./ 下載適合你系統(tǒng)的最新版本軟件安裝即可。R語言有個(gè)優(yōu)秀的環(huán)境叫Rstudio,具體安裝可參考 《R語言學(xué)習(xí) - 入門環(huán)境Rstudio》一文。
R語言中的數(shù)據(jù)類型(Data Types)R語言的對象(Objects)主要包括向量、矩陣、數(shù)組、數(shù)據(jù)框和列表。 R語言的對象有五種最基本的類型,即,字符型(character)、數(shù)值型(numeric,包括小數(shù))、整型(integer)、復(fù)數(shù)型(complex)以及邏輯型(logical,TRUE/FALSE) 屬性是R語言對象的一部分。主要包括以下幾種:名字(names,dimnames),維度(dimensions,包括矩陣等),類別(class,包括數(shù)字、整數(shù)等),長度(length),以及其他??赏ㄟ^ attributes() 函數(shù)查看對象的屬性,不是所有對象都有屬性,如果沒有則返回NULL。
1. 向量向量(vector)是R語言中最基本的數(shù)據(jù)類型,執(zhí)行組合功能的函數(shù) c() 可用來創(chuàng)建向量。 各類向量如下例所示: 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
注意:單個(gè)向量中的數(shù)據(jù)必須擁有相同的類型(數(shù)值型、字符型或邏輯型)。 創(chuàng)建空向量可以使用 vector() 函數(shù)。例如創(chuàng)建一個(gè)指定長度為10、類型為數(shù)值型的空向量: > x <> vector('numeric', length = 10)
> x
[1] 0 0 0 0 0 0 0 0 0 0
另外,標(biāo)量是只含一個(gè)元素的向量,它們用于保存常量。例如 2. 矩陣矩陣(matrice)是具有維度屬性的向量,矩陣都是二維的,和向量類似,矩陣中也僅能包含一種數(shù)據(jù)類型。 主要有三種創(chuàng)建矩陣的方法: (1)直接創(chuàng)建 例:數(shù)字1-20自動(dòng)創(chuàng)建為一個(gè)5行4列的矩陣,自動(dòng)填充第一列之后開始填充第二列 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() 是將矢量轉(zhuǎn)變?yōu)榫仃嚨姆椒?/p> > 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)綁定行或列來創(chuàng)建矩陣 綁定行或綁定列可以通過 cbind() 和 rbind() 來實(shí)現(xiàn) > 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. 數(shù)組數(shù)組(array)與矩陣類似,但是維度可以大于2。數(shù)組可通過array函數(shù)創(chuàng)建。 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.數(shù)據(jù)框數(shù)據(jù)框(Data Frames)是一種特殊的列表,其中所用元素長度都相等,列表中的每個(gè)元素都可以看作一列,每個(gè)元素的長度可以看作行數(shù)。 創(chuàng)建顯式數(shù)據(jù)框的方法是 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:///rdpeng/rprogdatascience/R Programming for Data Science 《R語言實(shí)戰(zhàn)》 Robert I. Kabacoff
|