學習小組Day6------Lisa

今天學習與R包相關的內容今天起了個大早,因為英語老師在美國有時差??

一、配置Rstudio的下載鏡像

R的配置文件 .Rprofile

在剛開始運行Rstudio的時候窟感,程序會查看許多配置內容肴沫,其中一個就是.Renviron钙畔,它是為了設置R的環(huán)境變量(這里先不說它);而.Rprofile就是一個代碼文件仗岖,如果啟動時找到這個文件逃延,那么就替我們先運行一遍(這個過程就是在啟動Rstudio時完成的) 來自:https://mp.weixin.qq.com/s/XvKb5FjAGM6gYsxTw3tcWw生信星球

file.edit('~/.Rprofile')  #首先用file.edit()來編輯文件,這時候Rstudio會自動打開一個新的窗口   

然后在新打開的窗口輸入以下兩行代碼:

# options函數(shù)就是設置R運行過程中的一些選項設置
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #對應清華源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #對應中科大源
# 當然可以換成其他地區(qū)的鏡像
然后點擊保存轧拄,save揽祥,最后重啟以下Rstudio,再運行一下:
options()$repos和options()$BioC_mirror 就發(fā)現(xiàn)已經配置好了檩电,就很方便地省了手動運行的步驟
已經配置好的鏡像

二拄丰、R包安裝和加載

R包安裝命令是install.packages(“包”)或者BiocManager::install(“包”)府树。取決于你要安裝的包存在于CRAN網站還是Biocductor,存在于哪里料按?下面介紹2種R包安裝方式(劃重點啦):??????
1奄侠、第一種方式歪玲,CRAN安裝R包:install.packages()函數(shù)
這種方式是R自帶的函數(shù)诈乒,直接安裝包了,這個是最簡單的章咧,而且不需要考慮各種包之間的依賴關系闷盔。

install.packages("ggplot2")  ##直接輸入包名字即可
library("ggplot2")  #加載一下即可使用

2弯洗、第二種方式,Bioconductor安裝R包:BiocManager::install()

> if (!requireNamespace("BiocManager", quietly = TRUE))#用來進行一個特定的行為馁筐,如當建議包找不到時拋出一個錯誤。
> install.packages("BiocManager") # 首先要安裝BiocManager包
> BiocManager::install("Biobase") # 再用BiocManager安裝

參考:http://www.reibang.com/p/98cb8607a731

  • R包的加載:library(包)require(包)兩個都可以

總結:安裝加載三部曲(以dplyr包為例)

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) 
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") 
install.packages("dplyr")    #先下載包
library(dplyr)   #加載一下即可使用

三坠非、dplyr五個基礎函數(shù)

  • 示例數(shù)據(jù)直接使用內置數(shù)據(jù)集iris的簡化版:
test <- iris[c(1:2,51:52,101:102),]  #取鳶尾花數(shù)據(jù)集的第1-2敏沉、51-52、101-102行
輸出結果

1.mutate(),新增列

輸出結果

2.select(),按列篩選

  • (1)按列號篩選


    image.png

    image.png

    image.png

    *(2)按列名篩選


    image.png
  • 3.filter()炎码,篩選行
    image.png
  • 4.arrange(),按某1列或某幾列對整個表格進行排序
    image.png

    image.png

    image.png
  • 5.summarise():匯總
  • 對數(shù)據(jù)進行匯總操作,結合group_by使用實用性強
  • dplyr提供了一個分組函數(shù)group_by盟迟,把分組依據(jù)相同的數(shù)據(jù)組合成行,相當于ddply中的group_vars
  • ungroup用于移出數(shù)據(jù)框的分組信息潦闲。配合上管道符號攒菠,可以方便地進行分組概述和分組計算。該函數(shù)還可以結合group_by()函數(shù)實現(xiàn)分組聚合歉闰,
  • group_by()函數(shù)語法:group_by(.data, ..., add = FALSE)

例子:
summarize(group_by(df2tbl,x), sum(y))


image.png
image.png

四辖众、dplyr兩個實用技能

1:管道操作 %>% (cmd/ctrl + shift + M)

(加載任意一個tidyverse包即可用管道符號)

??小插曲:tydiverse有哪些包?(來自Lisa的疑問)

image.png
  • 首先dplyr提供了一個符號%>%和敬,該符號將左邊的對象作為第一個參數(shù)傳遞到右邊的函數(shù)中凹炸,這樣就實現(xiàn)類似unix管道的編程風格,代碼更易讀.
  • %>%來自dplyr包的管道函數(shù)昼弟,其作用是將前一步的結果直接傳參給下一步的函數(shù)啤它,從而省略了中間的賦值步驟,可以大量減少內存中的對象舱痘,節(jié)省內存.
image.png
2:count統(tǒng)計某列的unique值
image.png

五变骡、dplyr處理關系數(shù)據(jù)

  • 即:將2個表進行連接,注意:不要引入factor
  • R語言環(huán)境變量的設置 環(huán)境設置函數(shù)為options()
image.png
> rm(list = ls())   #一鍵清空所有變量
> options(stringsAsFactors = F)   #對讀入數(shù)據(jù)的string的處理
> test1 <- data.frame(x = c('b','e','f','x'), 
+                     z = c("A","B","C",'D'),
+                     stringsAsFactors = F)
> test1
  x z
1 b A
2 e B
3 f C
4 x D
> test2 <- data.frame(x = c('a','b','c','d','e','f'), 
+                     y = c(1,2,3,4,5,6),
+                     stringsAsFactors = F)
> test2
  x y
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
6 f 6
1.內連inner_join,取交集

先普及一下知識:
我們知道芭逝,數(shù)據(jù)庫中經常需要將多個表進行連接操作塌碌,如左連接、右連接旬盯、內連接等誊爹,這里dplyr包也提供了數(shù)據(jù)集的連接操作蹬刷,具體如下:

left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結字段相等的記錄
right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結字段相等的記錄
inner join(等值連接) 只返回兩個表中聯(lián)結字段相等的行

image.png
> inner_join(test1, test2, by = "x")
  x z y
1 b A 2
2 e B 5
3 f C 6

結果說明:
很明顯,這說明inner join并不以誰為基礎,它只顯示符合條件的記錄.

2.左連left_join
> left_join(test1, test2, by = 'x')
  x z  y
1 b A  2
2 e B  5
3 f C  6
4 x D NA
> left_join(test2, test1, by = 'x')
  x y    z
1 a 1 <NA>
2 b 2    A
3 c 3 <NA>
4 d 4 <NA>
5 e 5    B
6 f 6    C

結果說明:
left join是以A表的記錄為基礎的,A可以看成左表,B可以看成右表,left join是以左表為準的.
換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜索條件的記錄,B表記錄不足的地方均為NULL.

3.全連full_join
> full_join( test1, test2, by = 'x')
  x    z  y
1 b    A  2
2 e    B  5
3 f    C  6
4 x    D NA
5 a <NA>  1
6 c <NA>  3
7 d <NA>  4
4.半連接:返回能夠與y表匹配的x表所有記錄semi_join
> semi_join(x = test1, y = test2, by = 'x')
  x z
1 b A
2 e B
3 f C
5.反連接:返回無法與y表匹配的x表的所有記錄anti_join
> anti_join(x = test2, y = test1, by = 'x')
  x y
1 a 1
2 c 3
3 d 4
6.簡單合并

??劃重點:在相當于base包里的cbind()函數(shù)和rbind()函數(shù);注意,bind_rows()函數(shù)需要兩個表格列數(shù)相同频丘,而bind_cols()函數(shù)則需要兩個數(shù)據(jù)框有相同的行數(shù)

#數(shù)據(jù)準備:準備三個test
> test1 <- data.frame(x = c(1,2,3,4), y = c(10,20,30,40))
> test1
  x  y
1 1 10
2 2 20
3 3 30
4 4 40
> test2 <- data.frame(x = c(5,6), y = c(50,60))
> test2
  x  y
1 5 50
2 6 60
> test3 <- data.frame(z = c(100,200,300,400))
> test3
    z
1 100
2 200
3 300
4 400
#進行合并操作:
> bind_rows(test1, test2)   #需要列數(shù)相同
  x  y
1 1 10
2 2 20
3 3 30
4 4 40
5 5 50
6 6 60
> bind_cols(test1, test3)   #需要行數(shù)相同
  x  y   z
1 1 10 100
2 2 20 200
3 3 30 300
4 4 40 400

★,°:.☆( ̄▽ ̄)/$:.°★ 办成。??今天的學習到此結束,掌握的很多搂漠,需要消化的也很多~

參考的網站有:
https://www.cnblogs.com/nxld/p/6060534.html
https://www.cnblogs.com/assasion/p/7768931.html
https://blog.csdn.net/weixin_34233679/article/details/86265275
https://cloud.tencent.com/developer/article/1430436
當然還有公眾號:生信星球學習小組的相關內容 ?

??明天再見啦~ヾ(?ω?`)o??

                                                   ——來自豬莎??
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末迂卢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桐汤,更是在濱河造成了極大的恐慌而克,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怔毛,死亡現(xiàn)場離奇詭異员萍,居然都是意外死亡,警方通過查閱死者的電腦和手機拣度,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門碎绎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抗果,你說我怎么就攤上這事筋帖。” “怎么了冤馏?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵日麸,是天一觀的道長。 經常有香客問我逮光,道長代箭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任涕刚,我火速辦了婚禮梢卸,結果婚禮上,老公的妹妹穿的比我還像新娘副女。我一直安慰自己蛤高,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布碑幅。 她就那樣靜靜地躺著戴陡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沟涨。 梳的紋絲不亂的頭發(fā)上恤批,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音裹赴,去河邊找鬼喜庞。 笑死诀浪,一個胖子當著我的面吹牛,可吹牛的內容都是我干的延都。 我是一名探鬼主播雷猪,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晰房!你這毒婦竟也來了求摇?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤殊者,失蹤者是張志新(化名)和其女友劉穎与境,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猖吴,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡摔刁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了海蔽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片共屈。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖准潭,靈堂內的尸體忽然破棺而出趁俊,到底是詐尸還是另有隱情域仇,我是刑警寧澤刑然,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站暇务,受9級特大地震影響泼掠,放射性物質發(fā)生泄漏。R本人自食惡果不足惜垦细,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一择镇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧括改,春花似錦腻豌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惹骂,卻和暖如春苏携,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背对粪。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工右冻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留装蓬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓纱扭,卻偏偏與公主長得像牍帚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子跪但,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容