R學(xué)習(xí)第三天
R包介紹
R語言的使用,很大程度上是借助各種各樣的R包的輔助,從某種程度上講,R包就是針對于R的插件,不同的插件滿足不同的需求。
查看包的相關(guān)信息
1、查看包幫忙
library(help="package_name")
主要內(nèi)容包括:例如:包名、作者、版本、更新時間、功能描述、開源協(xié)議、存儲位置、主要的函數(shù)
help(package = "package_name")
主要內(nèi)容包括:包的內(nèi)置所有函數(shù),是更為詳細(xì)的幫助文檔
2、查看當(dāng)前環(huán)境哪些包加載
find.package() 或者 .path.package()
3、移除包出內(nèi)存
detach()
4、把其它包的數(shù)據(jù)加載到內(nèi)存中
data(dsname, package="package_name")
5、查看這個包里的包有數(shù)據(jù)
data( package="package_name")
6、列出所有安裝的包
library()
R包都有自己的說明書(cheatsheet),俗稱小抄。
獲得小抄的方法:
方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet網(wǎng)站
https://www.rstudio.com/resources/cheatsheets/
方法3.我們教程里用到的包都可以到生信星球公眾號回復(fù)相應(yīng)的包名來獲取.

打開網(wǎng)頁首頁還是挺快的?。?/p>
了解包tidyr
它的功能主要有:
(1)數(shù)據(jù)框的變形
(2)處理數(shù)據(jù)框中的空值
(3)根據(jù)一個表格衍生出其他表格
(4)實(shí)現(xiàn)行或列的分割和合并
這個包是把你要用的數(shù)據(jù)處理成標(biāo)準(zhǔn)而統(tǒng)一的數(shù)據(jù)框(Tidy Data,下面有解釋),才能進(jìn)行進(jìn)一步的數(shù)據(jù)處理和作圖,可以說是萬里長征第一步!
---------------生信星球
學(xué)習(xí)極簡安裝R包:
在控制臺輸入:library(tidyr)

沒有報錯,已經(jīng)安裝了這個包。
數(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ù)值的函數(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)系?!版I”和“值”都是列名,如SampleName和Expression的對應(yīng)。
3.函數(shù)后面一般都要加括號,括號里第一個參數(shù)是都數(shù)據(jù)框名
4.字符串要加雙引號(行名和列名也是字符串,但是可以不用加),其他單元格(姑且這么叫了)里出現(xiàn)的字符串要加。
行 raw
列 column,簡化寫法為col
認(rèn)識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為要處理的數(shù)據(jù),key為新創(chuàng)建的變量,value為創(chuàng)建變量下的數(shù)值。...為列的設(shè)定,比如下面的例子創(chuàng)建變量stock,而不需要把time變成變量下的數(shù)值,則用X:Z或-time。
--------------------- 作者:littlely_ll 來源:CSDN
原文:https://blog.csdn.net/littlely_ll/article/details/54866193

2.Handle Missing Values
三種處理方式:
(1).刪除整行
(2).根據(jù)上下文(瞎)蒙一個
(3).同一列的空值填上同一個數(shù)。
csv,這個神奇的支持R和Excel,默認(rèn)參數(shù)好的很(默認(rèn)分隔符是“,”,導(dǎo)出時也不會默認(rèn)加引號。如果你用read.table試試就知道默認(rèn)參數(shù)多笨了),并且轉(zhuǎn)換txt也不會變亂碼!
在這里補(bǔ)充下csv的導(dǎo)入和導(dǎo)出方式。(默認(rèn)參數(shù)好,學(xué)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ù)值填充上
fill(X,X2)

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

3. Expand Tables
complete(把空值的位置補(bǔ)全)


expand
(列出每列值所有可能的組合--根據(jù)下面的示例來理解這句話)
示例數(shù)據(jù)----生信星球
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為要處理的數(shù)據(jù);col為要選擇的變量名;into為要分割為幾個變量的名;sep為正則表達(dá)式,用于分割;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為數(shù)據(jù);col為創(chuàng)建的變量;...為要合并的列名;sep為要為合并的變量添加的符號。
--------------------- 作者:littlely_ll 來源:CSDN
原文:https://blog.csdn.net/littlely_ll/article/details/54866193
