一、R語言的安裝
我所做的R語言學(xué)習(xí)主要是為應(yīng)對(duì)工作上的生信分析,如果你是往這個(gè)方向走,那么這篇文章很大可能會(huì)幫助你。如果你也是有python基礎(chǔ)的話,那我寫的可能會(huì)更対你口味。
不過現(xiàn)在看到這篇文章可能比較雜亂,到時(shí)候等我學(xué)完會(huì)做個(gè)完整的系統(tǒng)整理。
第一步,安裝R:https://www.r-project.org/
第二步,安裝RStudio:http://www.rstudio.com/ide
至于背景知識(shí),百度一下會(huì)比較詳細(xì),重點(diǎn)的話你要知道R是基于S語言做出來的,而R是由Ross Ihaka,Robert Gentleman這兩位
統(tǒng)計(jì)學(xué)家
做出來的,廣泛用于統(tǒng)計(jì)學(xué)領(lǐng)域的
可編程語言
至于你又會(huì)問那么RStudio又是什么,如果你學(xué)習(xí)過python,就會(huì)知道python有一個(gè)叫pycharm的玩意,說簡(jiǎn)單點(diǎn)其實(shí)就是一個(gè)IDE工具,你說我可不可以不用,當(dāng)然可以,你甚至可以不安裝R,牛逼的人一般都是用記事本編程的。
對(duì)于RStudio,你需要注意鏡像源要切換到國內(nèi),不一定都能用,一個(gè)不行換另外一個(gè),像是我廣州的鏡像源就用不了,鏡像源更換在這里可以找到。(tools最下面一個(gè)選項(xiàng)。)
二、R數(shù)據(jù)結(jié)構(gòu)及類型
歷史的經(jīng)驗(yàn)告訴我,對(duì)于數(shù)據(jù)類型的理解一定要夠深入,否則以后的BUG會(huì)多到頭疼。因此我在網(wǎng)上搞到這么一張圖,但目前我學(xué)習(xí)的知識(shí)有限,在以后的學(xué)習(xí)中可能會(huì)不斷回頭復(fù)習(xí)數(shù)據(jù)類型。
沒想到用什么樣的方式表達(dá)數(shù)據(jù)類型,實(shí)戰(zhàn)還是少了點(diǎn)。
0.賦值
#以下內(nèi)容均在RStudio中書寫
> a = 1
> a
[1] 1
> a <- 2
> a
[1] 2
#以上兩種寫法都是對(duì)a進(jìn)行賦值,雖然教程上說不推薦用第一種寫法,但是Python里面就是這么寫的啊,多優(yōu)雅,我就推薦萌新寫第一種,第二種還要多打一個(gè)字符,多累啊。
1.向量vector
#c是一個(gè)內(nèi)置函數(shù),他能把數(shù)組合起來變成向量,比如這樣
> a = c(1,2,3)
> b = c(2,3,4)
> a
[1] 1 2 3
> b
[1] 2 3 4
#這里順便說個(gè)常用的功能,如果你不知道這個(gè)函數(shù)怎么用,你可以用
?c
#的方法,在右側(cè)help界面會(huì)彈出這個(gè)函數(shù)的使用說明,十分便利。
萌新可能就會(huì)一堆問題了,比如我就喜歡鉆牛角尖,能不能用這種,這種,或者這種
> a = 1 2 3
Error: unexpected numeric constant in "a = 1 2"
> a = 1,2,3
Error: unexpected ',' in "a = 1,"
> a = (1,2,3)
Error: unexpected ',' in "a = (1,"
雖然打臉啪啪響,但我覺得多嘗試很重要,這對(duì)你充分理解數(shù)據(jù)含義會(huì)非常有幫助。
那么你會(huì)說,寫成向量有什么用?
這時(shí)候,你可以View一下。(函數(shù)首字母大寫!函數(shù)首字母大寫!)
#view也是一種函數(shù)
> View(a)
按我的理解,向量就是一組具有一定關(guān)系的數(shù)據(jù),他們可能是姓名,學(xué)號(hào),得分等等。
接下來就會(huì)有疑問,那么組成向量的基礎(chǔ)數(shù)據(jù)類型是什么?應(yīng)該是數(shù)值吧,可以是其他嗎?判斷變量的數(shù)據(jù)類型用class
#class是個(gè)用于判斷數(shù)據(jù)類型的函數(shù),大概是十分常用的測(cè)BUG方法。
> ?class
> a = c("1","2","3")
> a
[1] "1" "2" "3"
> class(a)
[1] "character"
> a = c(1,"2",3)
> a
[1] "1" "2" "3"
> class(a)
[1] "character"
> a = c(1,2,3)
> class(a)
[1] "numeric"
character和numeric,這是兩種不同的數(shù)據(jù)類型,應(yīng)該上面說的數(shù)值型和字符型,當(dāng)然還有因子型和布爾型,那么很重要的,這些數(shù)據(jù)有什么不一樣。
> a = c("1","2",3)
> a
[1] "1" "2" "3"
> View(a)
> class(a)
[1] "character"
>
> a = c(1,2,3)
> a
[1] 1 2 3
> View(a)
> class(a)
[1] "numeric"
#這是兩種不同的數(shù)據(jù)類型,但是都能完成向量和繪圖,而且在繪圖中肉眼上比較難辨別兩個(gè)數(shù)據(jù)的差異,這個(gè)地方在未來數(shù)據(jù)使用中一定是個(gè)大坑,多加留意。
三、畫一個(gè)差異表達(dá)矩陣
好了,現(xiàn)在你已經(jīng)學(xué)會(huì)了1+1 = 2,那么讓我們愉快的實(shí)戰(zhàn)吧。
接下來,你將花費(fèi)你人生中的1小時(shí),來完成這個(gè)包的安裝,這里參考的是http://www.lxweimin.com/p/9134a2b25520,但這位兄臺(tái)比較粗心,錯(cuò)了好幾個(gè)地方,比如simpleaffy就打錯(cuò)了。
library(simpleaffy)
另外一個(gè),請(qǐng)把這個(gè)54m的壓縮文件下載下來:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE20nnn/GSE20986/suppl/
完了你就可以按照教程中部署環(huán)境,安裝。
最后提示一下,他這一句,寫出來也是有問題的,你要把txt打開,更改一下對(duì)應(yīng)的位置關(guān)系。
write.table(phenodata, "data/tex1.txt",quote = F, sep = "\t",row.names = FALSE,col.names = TRUE)
完了你就可以做出很優(yōu)秀的圖啦