學(xué)習(xí)小組Day7筆記——單雙

今天是最后一天了,看看了任務(wù)不輕松呀,加快速度搞定,善始善終。

今天的學(xué)習(xí)任務(wù)是學(xué)習(xí)一個(gè)R包的安裝和簡(jiǎn)單應(yīng)用(筆記內(nèi)容未標(biāo)注部分均學(xué)習(xí)自生信星球)

R包是什么

R包,類(lèi)似C、Python中庫(kù)的概念,指包含特定領(lǐng)域的函數(shù)、數(shù)據(jù)、文檔等的集合。通過(guò)調(diào)用包,可以直接使用包中現(xiàn)成的數(shù)據(jù)、函數(shù)等,使開(kāi)發(fā)方便快捷高效。

為什么學(xué)習(xí)R包

  • R的強(qiáng)大在于包含了各種各樣的包,使用包非常有利于便捷開(kāi)發(fā)。
  • 一些功能在現(xiàn)有的包中并不存在,需要自己實(shí)現(xiàn),實(shí)現(xiàn)后通過(guò)打包方便代碼的復(fù)用。
  • 每個(gè)包涵括一個(gè)領(lǐng)域相關(guān)的函數(shù)數(shù)據(jù)文檔等,通過(guò)包可以有效地組織代碼結(jié)構(gòu),有利于開(kāi)發(fā)。

R包的結(jié)構(gòu)

創(chuàng)建R包后,在包的根目錄下,一般包含以下幾個(gè)部分(粗體表示必需):

  • R/: R函數(shù)目錄,包含包中定義的函數(shù)。
  • DESCRIPTION:包的描述,包括包名、作者、依賴(lài)等。
  • NAMESPACE:名稱(chēng)空間。
  • man/: R函數(shù)手冊(cè)目錄,包含了包中定義函數(shù)的手冊(cè)。
  • vignettes/: R項(xiàng)目目錄,包含了本項(xiàng)目的使用指導(dǎo)。
  • tests/: R函數(shù)測(cè)試目錄,包含了包中定義函數(shù)的測(cè)試及包功能的測(cè)試。
  • data/: 包中附帶的數(shù)據(jù)文件。

摘自Young_Gy-R包簡(jiǎn)單教程

tidyr包

reshape2的替代者,功能更純粹

tidyr主要提供了一個(gè)類(lèi)似Excel中數(shù)據(jù)透視表(pivot table)的功能;
gather和spread函數(shù)將數(shù)據(jù)在長(zhǎng)格式和寬格式之間相互轉(zhuǎn)化,應(yīng)用在比如稀疏矩陣和稠密矩陣之間的轉(zhuǎn)化;
separate和union方法提供了數(shù)據(jù)分組拆分、合并的功能,應(yīng)用在nominal數(shù)據(jù)的轉(zhuǎn)化上
R將整潔數(shù)據(jù)定義為:每個(gè)變量的數(shù)據(jù)存儲(chǔ)在自身的列中,每個(gè)觀(guān)測(cè)值的數(shù)據(jù)存儲(chǔ)在其自身的行中。整潔數(shù)據(jù)是進(jìn)行數(shù)據(jù)再加工的基礎(chǔ)。
tidyr包主要涉及:
1)缺失值的簡(jiǎn)單補(bǔ)齊
2)長(zhǎng)形表變寬形表與寬形表變長(zhǎng)形表
  gather-把寬度較大的數(shù)據(jù)轉(zhuǎn)換成一個(gè)更長(zhǎng)的形式,它類(lèi)比于從reshape2包中融合函數(shù)的功能
  spread-把長(zhǎng)的數(shù)據(jù)轉(zhuǎn)換成一個(gè)更寬的形式,它類(lèi)比于從reshape2包中鑄造函數(shù)的功能。
  gather()相反的是spread(),前者將不同的列堆疊起來(lái),后者將同一列分開(kāi)
3)列分割與列合并
  separate-將一列按分隔符分割為多列
  unite-將多列按指定分隔符合并為一列
tidyr包:(gather(寬數(shù)據(jù)轉(zhuǎn)為長(zhǎng)數(shù)據(jù))、spread(長(zhǎng)數(shù)據(jù)轉(zhuǎn)為寬數(shù)據(jù))、unit(多列合并為一列)、separate(將一列分離為多列))

摘自Little_Rookie——R----tidyr包介紹學(xué)習(xí)

如何使用某個(gè)R包

看R包的說(shuō)明書(shū),又叫小抄,理解并靈活使用

如何獲取小抄

百度
Rstudio——cheatsheet
生信星球公眾號(hào)回復(fù)R包名稱(chēng)

如何安裝

安裝tidyrinstall.packages("tidyr")
如果出錯(cuò),可修改下鏡像,tools-Global options-packages-CRAN mirror-change-選個(gè)位置最近的
加載tidyrlibrary(tidyr)也可以安裝前用這個(gè)命令試一下有沒(méi)有,

建數(shù)據(jù)框

a<-data.frame(GeneId=rep("gene5",times=3),sampleName=paste("sample",1:3,sep=""),expression=c(14,19,18))


具體解釋?zhuān)?br> rep——重復(fù)
paste——連接字符串
sep——分隔符
c()——無(wú)序數(shù)值或字符

背景知識(shí)

了解概念:key-value--“鍵值對(duì)” ,表示一種對(duì)應(yīng)關(guān)系?!版I”和“值”都是列名,如SampleName和Expression的對(duì)應(yīng)。

函數(shù)后面一般都要加括號(hào),括號(hào)里第一個(gè)參數(shù)是都數(shù)據(jù)框名

字符串要加雙引號(hào)(行名和列名也是字符串,但是可以不用加),其他單元格(姑且這么叫了)里出現(xiàn)的字符串要加。

行 raw ; 列 column,簡(jiǎn)化寫(xiě)法為col

Tidya(可使數(shù)據(jù)變統(tǒng)一格式,方便跨包使用),下圖很生動(dòng),引用自生信星球


每個(gè)變量(variable)占一列,每個(gè)情況(case,姑且這么翻譯)和觀(guān)測(cè)值(observation)占一行

練習(xí)使用:

創(chuàng)建a<-data.frame(Country=c("A","B","C"),"1999"=paste(c(0.7,37,212),"K",sep=""),"2000"=paste(c(2,80,213),"k",sep=""))


一 Reshape Data

> gather(a,X1999,X2000,key="year",value="cases")
  Country  year cases
1       A X1999  0.7K
2       B X1999   37K
3       C X1999  212K
4       A X2000    2k
5       B X2000   80k
6       C X2000  213k
> gather(a,"year","cases",X1999,X2000)
  Country  year cases
1       A X1999  0.7K
2       B X1999   37K
3       C X1999  212K
4       A X2000    2k
5       B X2000   80k
6       C X2000  213k
gather(a,"year","cases",-Country)
  Country  year cases
1       A X1999  0.7K
2       B X1999   37K
3       C X1999  212K
4       A X2000    2k
5       B X2000   80k
6       C X2000  213k
> gather(a,year,cases,-Country)
  Country  year cases
1       A X1999  0.7K
2       B X1999   37K
3       C X1999  212K
4       A X2000    2k
5       B X2000   80k
6       C X2000  213k

二 Handle Missing Values
導(dǎo)入:X<-read.csv('doudou.csv')
導(dǎo)出:write.csv(X,'doudou.csv')
csv很好用

drop_na(x,X2)
  X1 X2
1  A  1
4  D  3
> fill(x,X2)
  X1 X2
1  A  1
2  B  1
3  C  1
4  D  3
5  E  3
> replace_na(x,list(X2=2))
  X1 X2
1  A  1
2  B  2
3  C  2
4  D  3
5  E  2

三 Expand Tables
complete(把空值的位置補(bǔ)全)

> complete(x,nesting(X1#要把其余列寫(xiě)全,這里就一列),fill=list(X2=5))
# A tibble: 5 x 2
  X1       X2
  <fct> <dbl>
1 A         1
2 B         5
3 C         5
4 D         3
5 E         5

expand(所有組合)


expand(a,Country,X1999,X2000)
# A tibble: 27 x 3
   Country X1999 X2000
   <fct>   <fct> <fct>
 1 A       0.7K  213k 
 2 A       0.7K  2k   
 3 A       0.7K  80k  
 4 A       212K  213k 
 5 A       212K  2k   
 6 A       212K  80k  
 7 A       37K   213k 
 8 A       37K   2k   
 9 A       37K   80k  
10 B       0.7K  213k 
# ... with 17 more rows

四 split cells
直接夭折在建數(shù)據(jù)框上,沒(méi)有活學(xué)活用,先記下,有空再好好研究
separate:按列分割

separate_rows:按行分割


unite:分割完了再合并回去


結(jié)語(yǔ)

今天的一點(diǎn)小感悟,我的表妹來(lái)看我,她是個(gè)受了很多苦但性格開(kāi)朗的女孩兒,她羨慕我的學(xué)生生活,甚至聽(tīng)到別人用hello和我打招呼這種在她的日常中也是很平常的事情,發(fā)生在這個(gè)我每天待的她很羨慕的地方,她都會(huì)覺(jué)得格外遙遠(yuǎn),很吃驚的問(wèn)我”在這你們都用英語(yǔ)說(shuō)話(huà)呀“,要知道有這種調(diào)侃”讀博=蹲監(jiān)獄“,有些枯燥難熬的時(shí)刻確實(shí)神似,但可知道你眼中的監(jiān)獄可是別人眼中的天堂,她經(jīng)歷社會(huì)之種種歷練在你眼中卻是自由,她總用社會(huì)底層來(lái)形容自己,我告訴她我并不如你,他男朋友說(shuō)追求不同,我卻說(shuō)不出我追求的是什么,我們都一樣,地瓜土豆而已,命運(yùn)不同而已,走好當(dāng)下的每一步就好!

至此,7天的學(xué)習(xí)結(jié)束,今天就不長(zhǎng)篇大論了,在這里我收獲了漁,并對(duì)曾覺(jué)得像天書(shū)般的東西有所了解并初步入門(mén),我感受到了任何不經(jīng)意提出的小問(wèn)題都有及時(shí)的反饋和更新(比如腳本窗口的使用,引用圖片的格式,筆記中記下的小問(wèn)題等等),我感受到了教程的精心準(zhǔn)備和老師的用心,很值得,不知下次何時(shí)再見(jiàn),期待,感謝+7+.......................!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容