學習小組 Day 6 教程

寫在前面:

R包都有自己的說明書(cheatsheet),俗稱小抄僧叉。在對包有了一定的了解后奕枝,小抄是一個很好的學習操作指南,但是對于新手來說瓶堕,很有可能完全看不懂隘道。今天的教程有一部分參照了小抄,并作出了通俗的解釋郎笆。相信跟著教程走下去谭梗,就可以學個七七八八,跟著練練题画,然后自己研究一下小抄默辨,一個R包就學個差不多啦。

準備工作part1:學會獲取一個R包的小抄

方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet網(wǎng)站(網(wǎng)速好慢的)
https://www.rstudio.com/resources/cheatsheets/
方法2.我們教程里用到的包都可以到生信星球公眾號回復(fù)相應(yīng)的包名來獲取苍息,比如這個:

image

缩幸。壹置。。

準備工作part2:初步了解tidyr

(從這里開始到分割線以上的部分是我親愛的謝師姐測試教程的時候提出讓我加上的表谊,先介紹一下這個包能干啥)
  關(guān)于R包的學習不打算系統(tǒng)講了钞护,直接從這個名叫tidyr的包開始上手。這是一個數(shù)據(jù)處理的起步爆办,相對來說屬于R包里簡單的了难咕。
  它的功能主要有:
(1)數(shù)據(jù)框的變形
(2)處理數(shù)據(jù)框中的空值
(3)根據(jù)一個表格衍生出其他表格
(4)實現(xiàn)行或列的分割和合并
  這個包是把你要用的數(shù)據(jù)處理成標準而統(tǒng)一的數(shù)據(jù)框(Tidy Data,下面有解釋)距辆,才能進行進一步的數(shù)據(jù)處理和作圖余佃,可以說是萬里長征第一步!

image

準備工作part3--學習極簡安裝R包:

1.準備好Rstudio(恭喜你跳過了安裝的坑)跨算,設(shè)置好工作目錄爆土。
在控制臺輸入:library(tidyr),如果你沒有這個包,就會報錯:

image

2.下載和安裝tydir:install.packages("tidyr")
(這里會默認安裝到你的工作目錄里诸蚕,下載很慢步势,只要控制臺不出現(xiàn)>,就一直等著)
可能出現(xiàn)的報錯:

image

解決方案:換一個國內(nèi)的鏡像

image
image
image

加載tydir:library(tidyr) (沒有報錯就是成功)

準備工作part2:數(shù)據(jù)框的小常識

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))

得到的數(shù)據(jù)框是

image

新建一個數(shù)據(jù)框并賦值給bioplanet這個變量(賦值符號<-還記得嘛)括號里是“列名”=列值背犯,這里列名要加雙引號坏瘩。這里涉及的幾個給列填充數(shù)值的函數(shù)有

rep,重復(fù)漠魏,括號中填要重復(fù)的字符和重復(fù)次數(shù)倔矾。

paste,連接兩個字符串蛉幸,括號要填兩個代連接字符并指定分隔符(sep)破讨,沒有分隔符就填sep=“”。

1:3表示從1到三奕纫。如需一列中需要填入三個無規(guī)律的數(shù)字,可以用向量c(1烫沙,3匹层,4),同樣如果填的是字符串也需要加雙引號锌蓄,例如c("doudou","huahua","xiaoyu")升筏。

2.了解概念:key-value--“鍵值對” ,表示一種對應(yīng)關(guān)系瘸爽∧茫“鍵”和“值”都是列名,如SampleName和Expression的對應(yīng)剪决。

3.函數(shù)后面一般都要加括號灵汪,括號里第一個參數(shù)是都數(shù)據(jù)框名

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

行 raw

列 column峻凫,簡化寫法為col

準備工作part3:認識Tidy Data

TidyData?泰迪數(shù)據(jù)是神馬數(shù)據(jù)览露?我想到了如下兩坨:

image

皮一下我就是很開心荧琼!皮完查字典去:

image

這是一種組織表格數(shù)據(jù)的方式,提供了一種能夠跨包使用的“統(tǒng)一”的數(shù)據(jù)格式差牛。

什么叫“統(tǒng)一”命锄?

每個變量(variable)占一列,每個情況(case偏化,姑且這么翻譯)和觀測值(observation)占一行累舷。

舉個栗子

image

看到嗎?一列是一列夹孔,是魔鬼的步伐被盈。不要讓sample1,2搭伤,3當列名只怎,讓他們多重復(fù)幾遍,合并到一列怜俐。

數(shù)據(jù)由九宮格變成了一列身堡,就可以用來跨包處理啦。

這就是實現(xiàn)了數(shù)據(jù)框的變形??拍鲤。

終于準備完了我的媽呀

image

1.Reshape Data

哦贴谎,我知道你想要魔法棒,來季稳。

gather:我就是剛才的魔法棒

spread:我能讓tidy data一夜回到解放前擅这。

(下面的類似截圖都是來自小抄)

image

在這里如何復(fù)制上圖中的數(shù)據(jù)?(比較特殊的一點是列名是數(shù)字景鼠,這個還沒碰見過仲翎,因此對它這個列名動了一點手腳,不管給他們加雙引號铛漓、單引號還是反引號(英文模式下的1前面那個鍵)溯香,都沒有報錯!但是不加引號是不行滴浓恶。

image

但是我發(fā)現(xiàn)這個顯示表格的時候玫坛,會自動在數(shù)字列名前面加上個x(大寫的),就像這樣

image

由于它自動加了X包晰,寫列名的時候就不能按照小抄上面寫湿镀,而是:

gather(a,X1999,X2000,key = "year",value = "cases")

gather括號里的分別是:

數(shù)據(jù)框名炕吸,需合并的列名(兩個),合并后的key列名肠骆,value列名算途。

其中,需合并的列名也可以列在最后(其實個順序才是默認的)蚀腿,key=和value=也可以省略(我愛偷懶)嘴瓤,如果按照上面小抄的命令括號里那個順序,省略了就會報錯莉钙。

gather(a,"year","cases",X1999,X2000) #推薦的偷懶做法
image

其中廓脆,合并前的列名如果比較多,可以用排除法來偷懶磁玉,在上圖例子中可用

gather(a,year,cases,-country)  #-country的意思就是合并除country外剩下的列停忿。

2.Handle Missing Values

處理丟失的數(shù)據(jù)。就是某些單元格有空值的情況蚊伞。

三種處理方式:
(1).刪除整行
(2).根據(jù)上下文(瞎)蒙一個
(3).同一列的空值填上同一個數(shù)席赂。

image

將示例數(shù)據(jù)放在你的RData文件夾下(!J逼取颅停!重要)

NA表示空值,所以新建的時候像我一樣空著就好掠拳。
用以下命令即可獲得圖示數(shù)據(jù)框X

X<-read.csv('doudou.txt')

可能別人不會這么教癞揉,但我在這里之所以選擇了csv,是因為這個神奇的支持R和Excel溺欧,默認參數(shù)好的很(默認分隔符是“喊熟,”,導(dǎo)出時也不會默認加引號姐刁。如果你用read.table試試就知道默認參數(shù)多笨了)芥牌,并且轉(zhuǎn)換txt也不會變亂碼!(我自己發(fā)現(xiàn)的龙填,想夸我千萬別忍著)
在這里補充下csv的導(dǎo)入和導(dǎo)出方式胳泉。(默認參數(shù)好,學R沒煩惱)
導(dǎo)入:X<-read.csv('doudou.csv')
導(dǎo)出:write.csv(X,'doudou.csv')
drop_na():有空值的岩遗,整行刪除掉
括號里填數(shù)據(jù)框名,依據(jù)的列名(有空值那一列的列名)

drop_na(X,X2)

fill()凤瘦,根據(jù)上一行的數(shù)值填充上(好應(yīng)付的感覺)

fill(X,X2)

replace_na()宿礁,空值填進去特定的一個數(shù)值(還是在應(yīng)付)
括號里填數(shù)據(jù)框名,要填的列名=要填的值

replace_na(X,list(X2=2))

3. Expand Tables

image

這個地方,好像就是湊數(shù)蔬芥,目前我并不知道他有啥用梆靖。這部分的代碼刪掉了,在截圖里面有。請手打哦

complete(把空值的位置補全)

可以直接用剛才的數(shù)據(jù)框X填充一下試試谅将。比如填5

image

我用的數(shù)據(jù)是com.csv:

讀取的命令是com <- read.csv("com.csv")

image

其中有三個空值刚梭,我要填充上ddd relate

image

expand

(列出每列值所有可能的組合--根據(jù)下面的示例來理解這句話)

來看示例(以前年紀小不懂事,數(shù)據(jù)框名胡亂取的):

示例數(shù)據(jù)(就是剛才新建出來的數(shù)據(jù)框a):

pin2<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
image
image

我是看到了結(jié)果才知道我干了啥的测僵。就是選中的列中的值各種組合街佑,成為一個新表。(明白捍靠?)

4.split cells(選修)

把一列拆成兩列沐旨。目測原列必須要有分隔符才行啊好像。

image

separate:按列分割

separate_rows:按行分割

image

unite:分割完了再合并回去

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榨婆,一起剝皮案震驚了整個濱河市磁携,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌良风,老刑警劉巖谊迄,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烟央,居然都是意外死亡统诺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門吊档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篙议,“玉大人,你說我怎么就攤上這事怠硼」砑” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵香璃,是天一觀的道長这难。 經(jīng)常有香客問我,道長葡秒,這世上最難降的妖魔是什么姻乓? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮眯牧,結(jié)果婚禮上蹋岩,老公的妹妹穿的比我還像新娘。我一直安慰自己学少,他們只是感情好剪个,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著版确,像睡著了一般扣囊。 火紅的嫁衣襯著肌膚如雪乎折。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天侵歇,我揣著相機與錄音骂澄,去河邊找鬼。 笑死惕虑,一個胖子當著我的面吹牛坟冲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枷遂,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼樱衷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了酒唉?” 一聲冷哼從身側(cè)響起矩桂,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痪伦,沒想到半個月后侄榴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡网沾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年癞蚕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辉哥。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡桦山,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出醋旦,到底是詐尸還是另有隱情恒水,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布饲齐,位于F島的核電站钉凌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捂人。R本人自食惡果不足惜御雕,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滥搭。 院中可真熱鬧酸纲,春花似錦、人聲如沸瑟匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脓诡。三九已至无午,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祝谚,已是汗流浹背宪迟。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留交惯,地道東北人次泽。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像席爽,于是被迫代替她去往敵國和親意荤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

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