為什么要學(xué)習(xí)R語(yǔ)言
R的誕生
1992年, 肉絲 (Ross Ihaka)和 蘿卜特 (Robert Gentleman)兩個(gè)人在S語(yǔ)言(貝爾實(shí)驗(yàn)室開(kāi)發(fā)的一種統(tǒng)計(jì)用編程語(yǔ)言)的基礎(chǔ)上開(kāi)始構(gòu)思一種新的用于統(tǒng)計(jì)學(xué)分析的開(kāi)源語(yǔ)言,直到1995年第一個(gè)版本正式發(fā)布(和各位年齡相仿)。因?yàn)樗麄兠值牡谝粋€(gè)字母都是R,所以這門語(yǔ)言就被叫做R。這兩個(gè)人都是統(tǒng)計(jì)學(xué)教授出身,再加上R語(yǔ)言的生父S語(yǔ)言,所以 R語(yǔ)言在統(tǒng)計(jì)學(xué)方面有著純正的血統(tǒng) !
如果你平時(shí)的工作會(huì)涉及到統(tǒng)計(jì)學(xué),那么接觸R語(yǔ)言實(shí)在是太正常不過(guò)了。
另外,關(guān)于R語(yǔ)言的開(kāi)發(fā)者,看名字(Ross和Robert)部分人以為是伉儷,其實(shí)就是兩個(gè)大老爺們。如圖所示
R的發(fā)展
作為開(kāi)源軟件的R能夠迅速發(fā)展,很大程度上取決于其活躍的社區(qū)。學(xué)習(xí)R,很大程度上也是學(xué)習(xí)各種R包的使用。截止目前(2017年2月25日),CRAN(Comprehensive R Archive Network)上已經(jīng)有10162個(gè)可以獲取的R擴(kuò)展包,內(nèi)容涉及各行各業(yè),可以適用于各種復(fù)雜的統(tǒng)計(jì)。各地的CRAN鏡像都是R網(wǎng)站的備份文件,內(nèi)容完全一樣,你可以選擇離自己最近的去訪問(wèn)。
R的特長(zhǎng)
在R官網(wǎng)有這樣幾句介紹
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible.
One of R’s strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed.
- 因?yàn)镽語(yǔ)言本身為統(tǒng)計(jì)而生,所以你能想到的所有統(tǒng)計(jì)相關(guān)的工作,R都可以非常簡(jiǎn)潔的用幾行命令(甚至1行命令)幫你完成。
- R高度的可擴(kuò)展性正是體現(xiàn)在它那1萬(wàn)多個(gè)包上,你想做的幾乎所有事情都可以用現(xiàn)有的R包來(lái)輔助完成(當(dāng)然,有些工作即便能完成但也不適合)。
- R另一個(gè)殺手锏就是其強(qiáng)大的繪圖功能,正如上面的英文介紹所言,R可以畫圖,畫各種各樣的圖,畫各種各樣高逼格的圖,畫各種各樣高逼格可以直接出版的圖。
- 完善的統(tǒng)計(jì)學(xué)功能再加上強(qiáng)大的繪圖功能,就是你學(xué)習(xí)的最大理由。
- 對(duì)于生物相關(guān)的工作者而言,他們還有一個(gè)巨大的福利就是Bioconductor,這里面的一千多個(gè)R包都是用來(lái)解決生物(信息)問(wèn)題的。
R應(yīng)用示例
在這一部分,僅僅是給展示幾個(gè)用R可以輕松完成的相對(duì)有趣的工作。
安裝對(duì)應(yīng)包后應(yīng)該可以直接運(yùn)行
示例1 ggplot2畫圖
- #第一次使用,需要安裝相應(yīng)的包
- #以后只需要調(diào)用即可
- #install.packages("ggplot2")
- library("ggplot2")
- theta <- seq(0,24*pi, len=2000)
- radius <- exp(cos(theta)) - 2*cos(4*theta) + sin(theta/12)^5
- dd <- data.frame(x=radius*sin(theta), y=radius*cos(theta))
- ggplot(dd, aes(x, y))+geom_path()+xlab("")+ylab("")
效果展示
示例2 詞頻分析及詞云
- # install.packages("wordcloud2")
- library(wordcloud2)
- wordcloud2(demoFreqC, size = 0.7, shape = 'diamond')
效果展示
示例3 查看我國(guó)各地空氣質(zhì)量
- #install.packages("rvest")
- #install.packages("leafletCN")
- #install.packages("rgeos")
- Sys.setlocale("LC_CTYPE", "eng")
- library(rvest)
- library(leafletCN)
- library(rgeos)
- doc = read_html("http://www.pm25s.com/cn/rank/")
- cities = doc %>% html_nodes(".cityrank a") %>%
- html_text()
- cities = iconv(cities, "UTF-8", "UTF-8")
- AQI = doc %>% html_nodes("span[class^='lv']") %>%
- html_text() %>% .[c(F,F,T)] %>% as.numeric
- dat = data.frame(city = cities, AQI = AQI)
- geojsonMap(dat, "city",
- popup = paste0(dat$city,":",dat$AQI),
- palette = "Reds", legendTitle = "AQI")
效果展示
如何嘗試入門R語(yǔ)言
一開(kāi)始這一部分的標(biāo)題是 如何學(xué)好R語(yǔ)言 ,但是寫這部分東西需要很強(qiáng)的功底,我知道自己根本談不上學(xué)好。
后來(lái)又打算叫 如何入門R語(yǔ)言 ,但是每個(gè)人能付出的精力和能力又各不相同,而且因?yàn)槠綍r(shí)我用R的地方不太多,只是最近擔(dān)任助教才又開(kāi)始繼續(xù)學(xué)習(xí)。為了避免看了文章卻沒(méi)入門的朋友來(lái)吐槽,機(jī)智如我,干脆就叫 如何嘗試入門R語(yǔ)言 。
學(xué)習(xí)路線
看到這篇文章的一部分人很可能是我擔(dān)任助教這門課(生物統(tǒng)計(jì)學(xué))的同學(xué),而另一部分人很可能與生物信息學(xué)相關(guān)。
為了通過(guò)考試
如果你是前者而且僅僅是為了通過(guò)最后的考試,我建議你只需要在每節(jié)理論課后認(rèn)真理解老師上課的內(nèi)容,在每節(jié)討論課后拿出兩三天消化我們作業(yè)題中用到的R語(yǔ)言知識(shí)點(diǎn)就可以了。
- 大致了解一下R語(yǔ)言是什么,能干什么用(看完這篇文章,這部分就可以了)。
- 學(xué)習(xí)如何在R的官網(wǎng)下載R,如何在自己的電腦安裝R并成功運(yùn)行。
- 學(xué)習(xí)如何安裝Rstudio,并且了解其基本的用法(這步可省略)。
- 學(xué)習(xí)如何查看R幫助文檔(這步很重要)。
- 學(xué)習(xí)如何將作業(yè)中的數(shù)據(jù)(作業(yè)中通常是txt或者csv格式)正確地導(dǎo)入R。
- 了解R語(yǔ)言中的常見(jiàn)變量。
- 學(xué)習(xí)R語(yǔ)言一些最基本的命令,如安裝包、調(diào)用包、讀入寫入文件、構(gòu)造矩陣和基礎(chǔ)繪圖等。
- 學(xué)習(xí)在R中如何使用(課上提到的)統(tǒng)計(jì)學(xué)相關(guān)函數(shù),了解其參數(shù)的含義。
- 能夠獨(dú)立完成最后幾次作業(yè)和上一年的期末考試題。
生物信息學(xué)相關(guān)
- 了解R語(yǔ)言在生物信息學(xué)領(lǐng)域的應(yīng)用。
- 理解R語(yǔ)言中的各種變量。
- 學(xué)習(xí)如何創(chuàng)建數(shù)據(jù)集、清洗數(shù)據(jù)和使用常見(jiàn)的統(tǒng)計(jì)分析方法。
- 能夠?qū)?shù)據(jù)進(jìn)行高級(jí)操作,對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
- 學(xué)習(xí)R語(yǔ)言的中高級(jí)繪圖方法,能夠使用ggplot2。
- 學(xué)習(xí)R中高級(jí)統(tǒng)計(jì)分析方法,如聚類、主成分分析和線性回歸等。
- 學(xué)習(xí)并熟練使用自己研究領(lǐng)域相關(guān)的R包(通過(guò)bioconductor)。
個(gè)人感覺(jué),如果能完成上述幾條學(xué)習(xí)路線,那么R語(yǔ)言就算入門了。
入門的標(biāo)準(zhǔn)是什么呢?我想就是給你一份數(shù)據(jù)讓你處理,你腦子里的第一反應(yīng)是可不可用R做;如果給你一個(gè)任務(wù),你能上手嘗試用R去解決。