R包小抄的介紹:
R包都有自己的說(shuō)明書(shū)(cheatsheet)湿镀,俗稱小抄椎侠。在對(duì)包有了一定的了解后,小抄是一個(gè)很好的學(xué)習(xí)操作指南,但是對(duì)于新手來(lái)說(shuō)般眉,很有可能完全看不懂了赵。今天的教程有一部分參照了小抄,并作出了通俗的解釋甸赃。相信跟著教程走下去柿汛,就可以學(xué)個(gè)七七八八,跟著練練埠对,然后自己研究一下小抄苛茂,一個(gè)R包就學(xué)個(gè)差不多啦。
準(zhǔn)備工作part1:學(xué)會(huì)獲取一個(gè)R包的小抄
方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet網(wǎng)站(網(wǎng)速好慢的)
https://www.rstudio.com/resources/cheatsheets/
方法3:到生信星球公眾號(hào)回復(fù)相應(yīng)的包名來(lái)獲取
準(zhǔn)備工作part2:初步了解tidyr
它的功能主要有:
(1)數(shù)據(jù)框的變形
(2)處理數(shù)據(jù)框中的空值
(3)根據(jù)一個(gè)表格衍生出其他表格
(4)實(shí)現(xiàn)行或列的分割和合并
這個(gè)包是把你要用的數(shù)據(jù)處理成標(biāo)準(zhǔn)而統(tǒng)一的數(shù)據(jù)框(Tidy Data鸠窗,)妓羊,才能進(jìn)行進(jìn)一步的數(shù)據(jù)處理和作圖。
準(zhǔn)備工作part3--學(xué)習(xí)極簡(jiǎn)安裝R包:
1.下載和安裝tydir:install.packages("tidyr")
2.在控制臺(tái)輸入:library(tidyr)加載
準(zhǔn)備工作part4:數(shù)據(jù)框的小常識(shí)
1.新建數(shù)據(jù)框(這里直接把新建的數(shù)據(jù)框賦值給了a)
a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
新建一個(gè)數(shù)據(jù)框并賦值給bioplanet這個(gè)變量(賦值符號(hào)<-還記得嘛)括號(hào)里是“列名”=列值稍计,這里列名要加雙引號(hào)躁绸。這里涉及的幾個(gè)給列填充數(shù)值的函數(shù)有
rep,重復(fù)臣嚣,括號(hào)中填要重復(fù)的字符和重復(fù)次數(shù)净刮。
paste,連接兩個(gè)字符串硅则,括號(hào)要填兩個(gè)代連接字符并指定分隔符(sep)淹父,沒(méi)有分隔符就填sep=“”。
1:3表示從1到3怎虫。如需一列中需要填入三個(gè)無(wú)規(guī)律的數(shù)字暑认,可以用向量c(1,3大审,4)蘸际,同樣如果填的是字符串也需要加雙引號(hào),例如c("doudou","huahua","xiaoyu")徒扶。
2.了解概念:key-value--“鍵值對(duì)” 粮彤,表示一種對(duì)應(yīng)關(guān)系〗猓“鍵”和“值”都是列名导坟,如SampleName和Expression的對(duì)應(yīng)。
3.函數(shù)后面一般都要加括號(hào)圈澈,括號(hào)里第一個(gè)參數(shù)是都數(shù)據(jù)框名
4.字符串要加雙引號(hào)(行名和列名也是字符串惫周,但是可以不用加),其他單元格(姑且這么叫了)里出現(xiàn)的字符串要加士败。
準(zhǔn)備工作part5:認(rèn)識(shí)Tidy Data
這是一種組織表格數(shù)據(jù)的方式闯两,提供了一種能夠跨包使用的“統(tǒng)一”的數(shù)據(jù)格式褥伴。
什么叫“統(tǒng)一”:每個(gè)變量(variable)占一列,每個(gè)情況(case漾狼,姑且這么翻譯)和觀測(cè)值(observation)占一行重慢。
tidyr包的應(yīng)用
1.Reshape Data
gather:我就是剛才的魔法棒
spread:我能讓tidy data一夜回到解放前。
輸入數(shù)據(jù)(舉例):a<-data.frame(country=c("A","B","C"),1999
=paste(c(0.7,37,212),"K"),2000
=paste(c(2,80,213),"K"))
gather(a,X1999,X2000,key = "year",value = "cases") gather括號(hào)里的分別是:數(shù)據(jù)框名逊躁,需合并的列名(兩個(gè))似踱,合并后的key列名,value列名稽煤。
gather(a,"year","cases",X1999,X2000) #推薦的偷懶做法
gather(a,year,cases,-country) #-country的意思就是合并除country外剩下的列核芽。
結(jié)果示例:
2.Handle Missing Values
三種處理方式:
(1).刪除整行
(2).根據(jù)上下文(瞎)蒙一個(gè)
(3).同一列的空值填上同一個(gè)數(shù)。
X<-read.csv('doudou.txt')讀取數(shù)據(jù)
drop_na():有空值的酵熙,整行刪除掉
括號(hào)里填數(shù)據(jù)框名轧简,依據(jù)的列名(有空值那一列的列名)
如drop_na(X,X2)
fill(),根據(jù)上一行的數(shù)值填充上(好應(yīng)付的感覺(jué))
如fill(X,X2)
replace_na()匾二,空值填進(jìn)去特定的一個(gè)數(shù)值(還是在應(yīng)付)
括號(hào)里填數(shù)據(jù)框名哮独,要填的列名=要填的值
replace_na(X,list(X2=2))
3. Expand Tables
complete(把空值的位置補(bǔ)全)
expand
數(shù)據(jù)pin2<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
結(jié)果示例:
4.split cells(選修)
separate
:按列分割
separate_rows
:按行分割
unite
:分割完了再合并回去
思維導(dǎo)圖: