今天的學習內容--R包
一、學會獲取一個R包的說明書
R包都有自己的說明書(cheatsheet),俗稱小抄。
1.去百度/谷歌 XX小抄
2.找Rstuido的cheatsheet網站
https://www.rstudio.com/resources/cheatsheets/
二、初步了解tidyr
它是一個數據處理的起步
功能主要有:
(1)數據框的變形
(2)處理數據框中的空值
(3)根據一個表格衍生出其他表格
(4)實現行或列的分割和合并
這個包是把要用的數據處理成標準而統一的數據框,才能進行進一步的數據處理和作圖,可以說是最基礎的內容!
三、安裝R包
1.準備好Rstudio,設置好工作目錄。
在控制臺輸入:library(tidyr),如果你沒有這個包,就會報錯。
2.下載和安裝tydir:install.packages("tidyr") 注意雙引號不能省
(這里會默認安裝到你的工作目錄里,下載很慢,只要控制臺不出現>,就一直等著)
可能出現的報錯:
加載tydir:library(tidyr) 沒有報錯就是成功
四、數據框常識
1.新建數據框(這里直接把新建的數據框賦值給了a)
a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
解釋:
新建一個數據框并賦值給a這個變量。括號里是“列名”=列值,這里列名要加雙引號。這里涉及的幾個給列填充數值的函數有:
(1)rep("a",times=b):重復,a代表重復的字符,b是重復次數。
(2)paste("a","b",sep=""),連接和兩個字符串,括號要填兩個待連接字符串a、b并指定分隔符(sep),沒有分隔符就填sep=“”。
(3)1:3表示從1到三。如需一列中需要填入三個無規律的數字,可以用向量c(1,3,4),同樣如果填的是字符串也需要加雙引號,例如c("doudou","huahua","xiaoyu")。
2.了解概念:key-value--“鍵值對” ,表示一種對應關系。“鍵”和“值”都是列名,如SampleName和Expression的對應。
3.函數后面一般都要加括號,括號里第一個參數是都數據框名
4.字符串要加雙引號(行名和列名也是字符串,但是可以不用加),其他單元格里出現的字符串要加。
*行 raw
*列 column,簡化寫法為col
得到的結果是:
五、認識Tidy Data
這是一種組織表格數據的方式,提供了一種能夠跨包使用的“統一”的數據格式。即:每個變量(variable)占一列,每個情況(case,姑且這么翻譯)和觀測值(observation)占一行。
六、操作
(一)Reshape Data
gather(數據框名,需要改變的列名(兩個),合并后的key="鍵名",value="值”):將不標準的表格變為Tidy Data
spread:將Tidy Data變回去
注意:1.行名為數字時,要加上雙引號,將它變成字符才可以,不然會報錯。2.錄入數字列名時,R會自動在其前加一個‘X’
如果合并前的列名比較多,可以用排除法來偷懶,在上圖例子中可用:gather(a,year,cases,-country) #-country的意思就是合并除country外剩下的列。需合并的列名列在最后(其實個順序才是默認的),這時key=和value=也可以省略。
(二)Handle Missing Values
處理丟失的數據,就是某些單元格有空值的情況。NA就是空值,新建數據框的時候空著就好。
三種處理方式:
(1).刪除整行
(2).根據上下文(瞎)蒙一個
(3).同一列的空值填上同一個數。
1.讀入數據:
在這里補充下csv的導入和導出方式。
導入:X<-read.csv('doudou.csv')
導出:write.csv(X,'doudou.csv')
2.drop_na(數據框名,有空值的列名):有空值的,整行刪掉
3.fill(數據框名,有空值的列名):根據上一行的數值填充上
4.replace_na(括號里填數據框名,list(要填的列名=n)),空值填進去特定的一個數值n
(三)Expand Tables
1.complete(數據框名,nesting(沒有空值的列的名字),fill=list(有空值的列名=n))把空值的位置補全,空值填進去特定的一個數值n。
2.expand(列名)
列出每列中的值的所有組合
(四)split cells
把一列拆開,這一列必須要有分隔符
1.separate:將原列分割為兩列,其他不變。
2.separate_rows:將原列分割為兩行,且新行的其余列的值再copy一份
3.unite:將分割的兩列再合并回去