學習小組Day6筆記--LBQ

今天的學習內容--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)占一行。


看到嗎?一列是一列不要讓sample1,2,3當列名,讓他們多重復幾遍,合并到一列。

六、操作

(一)Reshape Data

gather(數據框名,需要改變的列名(兩個),合并后的key="鍵名",value="值”):將不標準的表格變為Tidy Data
spread:將Tidy Data變回去

使用方法

注意:1.行名為數字時,要加上雙引號,將它變成字符才可以,不然會報錯。2.錄入數字列名時,R會自動在其前加一個‘X’
b <- data.frame(Country=c("A","B","C"),'1999'=paste(c(0.7,37,212),"K"),'2000'=paste(c(2,80,213),"K"))

結果圖(報錯忽略)

如果合并前的列名比較多,可以用排除法來偷懶,在上圖例子中可用:gather(a,year,cases,-country) #-country的意思就是合并除country外剩下的列。需合并的列名列在最后(其實個順序才是默認的),這時key=和value=也可以省略。

(二)Handle Missing Values

處理丟失的數據,就是某些單元格有空值的情況。NA就是空值,新建數據框的時候空著就好。
三種處理方式:
(1).刪除整行
(2).根據上下文(瞎)蒙一個
(3).同一列的空值填上同一個數。

Handle Missing Values

1.讀入數據:
X<-read.csv('doudou.txt')***之所以選擇了csv,是因為這個神奇的支持R和Excel,默認參數好的很(默認分隔符是“,”,導出時也不會默認加引號。如果你用read.table試試就知道默認參數多笨了),并且轉換txt也不會變亂碼!

在這里補充下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(列名)
列出每列中的值的所有組合


數據是上文a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))

(四)split cells

把一列拆開,這一列必須要有分隔符



數據:bb<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c("14K/20M","19K/21M","18K/22M"))**有分隔符‘/’的Expression列要用引號引起來,不然會報錯**

1.separate:將原列分割為兩列,其他不變。


2.separate_rows:將原列分割為兩行,且新行的其余列的值再copy一份




3.unite:將分割的兩列再合并回去


數據是1中分割的結果:cc <- separate(bb,Expression,into=c("rate","pop"))
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前兩天一直覺得R太難了,學的頭大,通過今天的學習,終于讓我擯棄前嫌,開始喜歡上了R,真的是功能強大又簡潔,非常友好...
    胡瑩crystal閱讀 597評論 0 1
  • 滴滴滴,第六天打卡~~~~ 準備工作: part1:學會獲取一個R包的小抄 方法1:百度/谷歌方法2:找Rstud...
    徐沫沫閱讀 325評論 0 0
  • 生信起步第六站-R大哥的“魔法”技能。 之前一直很“怨恨”R包,主要因為各種安裝可能會遇到各種麻煩,但不可...
    憶落_angle閱讀 498評論 1 1
  • R學習第三天 R包介紹R語言的使用,很大程度上是借助各種各樣的R包的輔助,從某種程度上講,R包就是針對于R的插件,...
    風起云涌龍閱讀 440評論 0 1
  • 通識七觀的第一個維度歷史,從幾個切片作為切入。分別為人口、地理、軍事、科技等方面切入。 1.人口 人口的演化使中國...
    微風知意閱讀 334評論 1 1