學習小組Day6筆記--風云

R學習第三天

R包介紹
R語言的使用,很大程度上是借助各種各樣的R包的輔助,從某種程度上講,R包就是針對于R的插件,不同的插件滿足不同的需求。

查看包的相關信息
1、查看包幫忙
library(help="package_name")
主要內容包括:例如:包名、作者、版本、更新時間、功能描述、開源協議、存儲位置、主要的函數
help(package = "package_name")
主要內容包括:包的內置所有函數,是更為詳細的幫助文檔
2、查看當前環境哪些包加載
find.package() 或者 .path.package()
3、移除包出內存
detach()
4、把其它包的數據加載到內存中
data(dsname, package="package_name")
5、查看這個包里的包有數據
data( package="package_name")
6、列出所有安裝的包
library()

R包都有自己的說明書(cheatsheet),俗稱小抄。

獲得小抄的方法:

方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet網站
https://www.rstudio.com/resources/cheatsheets/
方法3.我們教程里用到的包都可以到生信星球公眾號回復相應的包名來獲取.

cheatsheet網站

打開網頁首頁還是挺快的啊!

了解包tidyr

它的功能主要有:
(1)數據框的變形
(2)處理數據框中的空值
(3)根據一個表格衍生出其他表格
(4)實現行或列的分割和合并
  這個包是把你要用的數據處理成標準而統一的數據框(Tidy Data,下面有解釋),才能進行進一步的數據處理和作圖,可以說是萬里長征第一步!
---------------生信星球

學習極簡安裝R包:

在控制臺輸入:library(tidyr)

加載包

沒有報錯,已經安裝了這個包。

數據框的小常識

1.新建數據框(這里直接把新建的數據框賦值給了a)

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

這里涉及的幾個給列填充數值的函數有
rep,重復,括號中填要重復的字符和重復次數。
paste,連接兩個字符串,括號要填兩個代連接字符并指定分隔符(sep),沒有分隔符就填sep=“”。
1:3表示從1到三。如需一列中需要填入三個無規律的數字,可以用向量c(1,3,4),同樣如果填的是字符串也需要加雙引號,例如c("doudou","huahua","xiaoyu")
2.了解概念:key-value--“鍵值對” ,表示一種對應關系。“鍵”和“值”都是列名,如SampleName和Expression的對應。
3.函數后面一般都要加括號,括號里第一個參數是都數據框名
4.字符串要加雙引號(行名和列名也是字符串,但是可以不用加),其他單元格(姑且這么叫了)里出現的字符串要加。
行 raw
列 column,簡化寫法為col

認識Tidy Data

知乎上有一篇介紹文章https://zhuanlan.zhihu.com/p/27579776

tidyr的使用

1.Reshape Data

gather:我就是剛才的魔法棒

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

gather的用法:
gather(data, key, value, ..., na.rm = FALSE, convert = FALSE, factor_key = FALSE)
data為要處理的數據,key為新創建的變量,value為創建變量下的數值。...為列的設定,比如下面的例子創建變量stock,而不需要把time變成變量下的數值,則用X:Z或-time。
--------------------- 作者:littlely_ll 來源:CSDN
原文:https://blog.csdn.net/littlely_ll/article/details/54866193

gather范例

2.Handle Missing Values

三種處理方式:
(1).刪除整行
(2).根據上下文(瞎)蒙一個
(3).同一列的空值填上同一個數。
csv,這個神奇的支持R和Excel,默認參數好的很(默認分隔符是“,”,導出時也不會默認加引號。如果你用read.table試試就知道默認參數多笨了),并且轉換txt也不會變亂碼!
在這里補充下csv的導入和導出方式。(默認參數好,學R沒煩惱)
導入:X<-read.csv('doudou.csv')
導出:write.csv(X,'doudou.csv')

導入數據

drop_na():有空值的,整行刪除掉
括號里填數據框名,依據的列名(有空值那一列的列名)

drop_na(X,X2)
drop_na

fill(),根據上一行的數值填充上

fill(X,X2)
fill

replace_na(),空值填進去特定的一個數值(還是在應付)

括號里填數據框名,要填的列名=要填的值

replace_na(X,list(X2=2))
replace_na

3. Expand Tables

complete(把空值的位置補全)

complete

示例

expand

(列出每列值所有可能的組合--根據下面的示例來理解這句話)
示例數據----生信星球

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

4.split cells

separate:按列分割
separate_rows:按行分割

separate的用法:
separate(data, col, into, sep = "[^[:alnum:]]+", remove =TRUE, convert = FALSE, extra = "warn", fill = "warn", ...)
data為要處理的數據;col為要選擇的變量名;into為要分割為幾個變量的名;sep為正則表達式,用于分割;extra為在字符串過多的情況下處理;fill為在字符串過少的情況下處理。
separate_rows的用法:
separate_rows(data, ..., sep = "[^[:alnum:].]+", convert =FALSE)
--------------------- 作者:littlely_ll 來源:CSDN
原文:https://blog.csdn.net/littlely_ll/article/details/54866193

unite:分割完了再合并回去

unite的用法:
unite(data, col, ..., sep = "_", remove = TRUE)
data為數據;col為創建的變量;...為要合并的列名;sep為要為合并的變量添加的符號。
--------------------- 作者:littlely_ll 來源:CSDN
原文:https://blog.csdn.net/littlely_ll/article/details/54866193

Day6
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 初識乒乓感慨深, 教練技高功夫真。 眼疾手狠心瞄準, 全神貫注不分心。 學習教練不旁騖, 練好使拍第一步。 正手反...
    旖旎i閱讀 234評論 1 0
  • 1、什么是Webpack WebPack可以看做是模塊打包機:它做的事情是,分析你的項目結構,找到JavaScri...
    神奇的的奇閱讀 354評論 0 1
  • 寶塔鎮幺幺閱讀 273評論 0 0