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.我們教程里用到的包都可以到生信星球公眾號回復相應的包名來獲取.
打開網頁首頁還是挺快的啊!
了解包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
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)
fill()
,根據上一行的數值填充上
fill(X,X2)
replace_na()
,空值填進去特定的一個數值(還是在應付)
括號里填數據框名,要填的列名=要填的值
replace_na(X,list(X2=2))
3. Expand Tables
complete(把空值的位置補全)
expand
(列出每列值所有可能的組合--根據下面的示例來理解這句話)
示例數據----生信星球
pin2<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
expand(pin2,GeneId,SampleName,Expression)
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