《R語言入門與實踐》第二章:R包與幫助文檔

前言:接著上一章(《R語言入門與實踐》第一章:R基礎(chǔ))的任務,現(xiàn)在已經(jīng)有了模擬擲一對骰子的函數(shù)炫惩。接下來的目標是對骰子進行加權(quán)昔园,做出不均勻的骰子——即讓這對骰子擲出大點數(shù)的概率稍高于擲出小點數(shù)的概率蔓榄。需要用兩個函數(shù)實現(xiàn)重復(replicate)和可視化(visualization):

  • replicate():重復運行,實現(xiàn)重復投擲骰子
  • qplot():快速做圖(quick plot)默刚,將重復拋擲的結(jié)果可視化
    拓展學習:qplot入門- 知乎 (zhihu.com)

筆記目錄:
2.1 下載和加載R包
2.2 運用qplot函數(shù)快速繪圖
2.3查找?guī)椭撁娅@取幫助
2.4 項目1總結(jié)(1-2章)

2.1 下載和加載R包

剛才提到的qplot函數(shù)不是R自帶的函數(shù)甥郑,來自外部的一個獨立的R包ggplot2。這就是R作為開源軟件最大的特點荤西,很多優(yōu)秀的數(shù)據(jù)科學家澜搅、統(tǒng)計學家、程序員編寫上傳的R包皂冰,可以幫助我們快速實現(xiàn)很多分析操作店展,再次感謝前輩們的貢獻。
當然也有一個潛在的缺點就是秃流,大量的R包在其中找到合適的包赂蕴,需要更多的時間查找和學習。好在優(yōu)秀的前行者們也有很多總結(jié)經(jīng)驗舶胀,小白日常感激概说。
拓展學習:R語言最新最好用綜合包推薦【2022】 - 知乎 (zhihu.com)

  • 安裝R包:命令:install.packages("ggplot2"),雙引號中間為R包的名稱嚣伐。
  • 加載R包:命令:library("ggplot2")糖赔,加載包后,沒有信息顯示代表一切正常轩端。
  • 每個包只需安裝一次放典,但是每次重新打開RStudio后,都需要重新加載需要的包。
library("ggplot2")

2.2 運用qplot函數(shù)快速繪圖

安裝和加載好奋构,開始使用qplot繪圖吧~

  • 把兩個長度相同的數(shù)值向量交給qplot函數(shù)壳影,它就會繪制出一幅散點圖。
  • qplot函數(shù)一個向量弥臼,它就會畫出一個直方圖宴咧。
#輸入R包名稱回車,可以顯示這一函數(shù)的源代碼径缅,太長就不放了掺栅。
qplot
# c函數(shù)創(chuàng)建數(shù)值向量,放在c()括號內(nèi)纳猪,每個數(shù)值用逗號隔開氧卧。
x <- c(-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1)
y <- x^3
qplot(x,y)
  • 散點圖:描述兩個變量之間的關(guān)系。

    簡單散點圖.png

  • 直方圖:可視化單一變量的分布情況兆旬;顯示這個變量的每一個值x假抄,直方圖會展示有多少數(shù)據(jù)點落在這個值內(nèi)。

  • 通過直方圖可以直觀地看出x的哪些值出現(xiàn)的頻率高丽猬。

x <- c(1,2,2,2,3,3)
qplot(x,binwidth=1)
# binwidth參數(shù)代表直方圖的寬度宿饱,確保每個圖的一致性。
直方圖1.png
x2 <- c(1,1,1,1,1,2,2,2,2,3,3,4)
qplot(x2,binwidth=1)
# 5個數(shù)據(jù)點取值為1脚祟,因此在區(qū)間[1,2)上的柱高為5谬以。
直方圖2.png
x3 <- c(0,1,1,2,2,2,3,3,4)
qplot(x3,binwidth=1)

直方圖3.png

那么,如何通過直方圖檢驗虛擬骰子的均勻程度呢由桌?我們可以通過replicate函數(shù)为黎,快速重復運行投擲骰子的命令。投擲足夠多的次數(shù)便會看到投擲結(jié)果呈現(xiàn)的規(guī)律趨于穩(wěn)定行您。

# roll剛才為定義的一對骰子铭乾,如果再次打開Rstudio,之前定義過的函數(shù)娃循,需要重新運行一下炕檩,不然會報錯,沒有這個函數(shù)捌斧。
roll<- function(){
  die <- 1:6
  dice <- sample(die,size=2,replace=TRUE)
  sum(dice)
}
# rolls為投擲10000次的骰子點數(shù)總和的分布笛质。
rolls <- replicate(10000,roll())
qplot(rolls,binwidth=1)
均勻骰子10000次投擲結(jié)果

2.3查找?guī)椭撁娅@取幫助

  • R函數(shù)家族龐大,不可能記住和掌握每個函數(shù)捞蚂。所幸每一個R函數(shù)都有自己的幫助頁面妇押。
  • 查看幫助頁面的方式:?+ 函數(shù)名稱
  • 如果忘記函數(shù)的具體名稱姓迅,可以用:敲霍?俊马?+函數(shù)關(guān)鍵詞
  • 如果查找的函數(shù)來自某個R包,而沒有安裝或者加載該包色冀,以上方式不能查看潭袱。
?sample
sample函數(shù)幫助頁面.png

幫助頁面的組成部分:

  1. 函數(shù)描述(Description):一段簡短的有關(guān)該函數(shù)功能的描述。
  2. 使用方法(Usage):說明如何鍵入該函數(shù)和相應的參數(shù)名锋恬。
  3. 參數(shù)(Arguments):列出該函數(shù)所包含的所有參數(shù)、參數(shù)的賦值類型及作用编丘。
  4. 相關(guān)細節(jié)(Details):對函數(shù)的工作原理的進一步描述及注意事項与学。
  5. 返回值(Value):關(guān)于該函數(shù)運行后返回值的簡短描述。
  6. 另請參閱(See also):與該函數(shù)相關(guān)的函數(shù)的列表嘉抓。
  7. 示例(Examples):確彼魇兀可以無錯運行的代碼示例。

很多函數(shù)幫助頁面的內(nèi)容非常多抑片,并且難以理解(尤其我這種英語還不好的小白)卵佛。那就可以只需要關(guān)注能理解的部分,并且最重要的是最后的代碼示例敞斋。運行這些代碼截汪,可以幫助我們快速掌握該函數(shù)的基本功能。

現(xiàn)在植捎,我們的目的是在幫助頁面中找到sample函數(shù)如何設(shè)置抽取概率衙解,以獲得一對非均勻的骰子。

  • 在使用方法(Usage)這里焰枢,我們找到了sample函數(shù)的所有參數(shù)設(shè)置蚓峦,最后一個參數(shù)我們還沒有運用〖贸看一下最后一個參數(shù)的作用暑椰,看起來很像我們要找的,接下來來實踐一下吧荐绝!

Usage
sample(x, size, replace = FALSE, prob = NULL)
prob :a vector of probability weights for obtaining the elements of the vector being sampled.(用于獲取被抽取向量元素的概率權(quán)重向量一汽。)
(prob的參數(shù)中的概率權(quán)重與抽取向量元素一一對應)

# roll剛才為定義的一對均勻骰子。
roll<- function(){
  die <- 1:6
  dice <- sample(die,size=2,replace=TRUE)
  sum(dice)
}
# roll2為加了概率權(quán)重參數(shù)的非均勻骰子很泊。
roll2<- function(){
  die <- 1:6
  dice <- sample(die,size=2,replace=TRUE,prob = c(1/8,1/8,1/8,1/8,1/8,3/8))
  sum(dice)
}
# rolls2為投擲10000次非均勻骰子點數(shù)總和的分布角虫。
rolls2 <- replicate(10000,roll2())
qplot(rolls2,binwidth=1)
非均勻骰子10000次投擲結(jié)果.png

均勻骰子10000次投擲結(jié)果

再看一下上面的均勻骰子結(jié)果圖,可以看出這次的直方圖出現(xiàn)了較大的向右偏態(tài)委造。如果是模擬擲骰子戳鹅,點數(shù)大的概率遠高于點數(shù)小的概率。

2.4項目1總結(jié)

上一章我們總結(jié)了R語言最重要的兩個組成部分:

  • 對象:用來存儲數(shù)據(jù)——R語言中的名詞
  • 函數(shù):用來操作分析數(shù)據(jù)——R語言中的動詞(函數(shù)中的參數(shù)可以看作副詞)
    書中比喻的特別好:

如果函數(shù)和對象結(jié)合起來昏兆,就可以通過R語言表達一個完整的想法枫虏。將多個想法按邏輯順序接合起來,可以生成有力的甚至唯美的語句。(P34)
這樣看R語言和其他語言并無差異隶债。同樣如果想要學好這門語言腾它,就必須掌握一定詞匯量(即R命令),不然難以自如地用R語言和計算機交流死讹。
即使目前詞匯量還不大瞒滴,也不應該羞于開口,一定要多交流赞警,計算機是一個好的聽眾妓忍,有問題會立馬給你指出來(報錯),而不會嘲笑你愧旦;操作正確會給你反饋正確的結(jié)果世剖。(這樣的及時反饋,不就是刻意練習嘛s猿妗)

復盤一下我們已經(jīng)掌握的技能:

  • 認識和使用RStudio的用戶界面
  • 運行R命令旁瘫、創(chuàng)建R對象
  • 編寫自己的R函數(shù)和腳本
  • 生成隨機樣本和非均勻概率樣本
  • 加載并使用R包
  • 快速制圖
  • 在需要幫助時及時獲取幫助

到現(xiàn)在為止我們所學習的R基礎(chǔ)知識已經(jīng)足以在接下來學習過程中邊學邊用了,而邊學邊用正是最佳的學習途徑琼蚯。截至目前代碼累積到150行酬凳,向10000行繼續(xù)進發(fā)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凌停,一起剝皮案震驚了整個濱河市粱年,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罚拟,老刑警劉巖台诗,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赐俗,居然都是意外死亡拉队,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門阻逮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粱快,“玉大人,你說我怎么就攤上這事叔扼∈驴蓿” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵瓜富,是天一觀的道長鳍咱。 經(jīng)常有香客問我,道長与柑,這世上最難降的妖魔是什么谤辜? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任蓄坏,我火速辦了婚禮,結(jié)果婚禮上丑念,老公的妹妹穿的比我還像新娘涡戳。我一直安慰自己,他們只是感情好脯倚,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布渔彰。 她就那樣靜靜地躺著,像睡著了一般推正。 火紅的嫁衣襯著肌膚如雪胳岂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音磅氨,去河邊找鬼凝化。 笑死,一個胖子當著我的面吹牛规脸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼夜郁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粘勒?” 一聲冷哼從身側(cè)響起竞端,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎庙睡,沒想到半個月后事富,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡乘陪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年统台,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啡邑。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡贱勃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谤逼,到底是詐尸還是另有隱情贵扰,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布流部,位于F島的核電站戚绕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贵涵。R本人自食惡果不足惜列肢,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一恰画、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓷马,春花似錦拴还、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怀骤,卻和暖如春费封,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒋伦。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工弓摘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痕届。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓韧献,卻偏偏與公主長得像,于是被迫代替她去往敵國和親研叫。 傳聞我的和親對象是個殘疾皇子锤窑,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容