R包什么哎垦?
R包是R函數(shù),編碼和樣本數(shù)據(jù)的集合恃疯, 它們存儲(chǔ)在R環(huán)境中的名為“l(fā)ibrary”的目錄下漏设。 默認(rèn)情況下,R在安裝過程中安裝一組軟件包澡谭。當(dāng)需要某些特定的目的時(shí)愿题,也可根據(jù)需要添加更多的包。 當(dāng)我們啟動(dòng)R控制臺(tái)時(shí)蛙奖,默認(rèn)情況下只有默認(rèn)軟件包可用潘酗。 已經(jīng)安裝的其他軟件包必須明確加載才能被要使用的R程序使用。
注意:學(xué)生信雁仲,R語言必學(xué)的原因是豐富的圖表和Biocductor上面的各種生信分析R包仔夺。
安裝和加載R包
- 鏡像設(shè)置
最基礎(chǔ)的是在Rstudio中進(jìn)行了設(shè)置(R鏡像是為了方便世界各地的使用者下載R軟件及相關(guān)軟件包,在各地設(shè)置的鏡像攒砖。但是需要去官網(wǎng)下載缸兔,下載速度太慢。所以吹艇,選擇離你最近的鏡像惰蜜,你下載R軟件或R包的速度相對(duì)較快)。后來需要自定義我們的下載鏡像受神,主要通過兩行代碼進(jìn)行:
option ("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
下次再打開Rstudio抛猖,試試options()$BioC_mirror檢查是否是國內(nèi)鏡像系統(tǒng)。如果發(fā)現(xiàn)不是得花鼻听,需要進(jìn)行高級(jí)設(shè)置财著。
R的配置文件 .Rprofile :R中經(jīng)常會(huì)使用一些命令,而且需要重復(fù)輸入撑碴,非常麻煩撑教。如果能夠一打開R就直接使用會(huì)方便很多。通過配置一個(gè).Rprofile文件醉拓,可以達(dá)到我們的目的伟姐。操作如下:
file.edit('~/.Rprofile')
再添加options兩行代碼,保存重啟即可
補(bǔ)充:.Renviron:是給R包一個(gè)家廉嚼,它是為了設(shè)置R的環(huán)境變量玫镐。
安裝加載R包
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
install.packages("dplyr")
library(dplyr)
示例數(shù)據(jù)如下:使用內(nèi)置數(shù)據(jù)集iris的簡化版
test <- iris[c(1:2,51:52,101:102),]
什么是iris數(shù)據(jù)集:
dplyr五個(gè)基礎(chǔ)函數(shù)
dplyr包主要用于數(shù)據(jù)清洗和整理,主要功能有:行選擇怠噪、列選擇、統(tǒng)計(jì)匯總杜跷、窗口函數(shù)傍念、數(shù)據(jù)框交集等是非常高效矫夷、友好的數(shù)據(jù)處理包.
- mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width)
新增一個(gè)new列,內(nèi)容是Sepal.Length * Sepal.Width(長度*寬度)
-
select(),按列篩選
1 按列號(hào)篩選
select (test,())憋槐,可以是標(biāo)量双藕,可以是向量
2 按列名篩選 - filter()篩選行
filter(test, Species == "setosa") 篩選行為物種為setosa的物種
filter(test, Species == "setosa"&Sepal.Length > 5 ) 篩選物種為setosa并且Sepal.Length > 5的行。如果中間是|阳仔,就是篩選的或者
filter(test, Species %in% c("setosa","versicolor"))篩選忧陪,物種符合setosa,versicolor的行
注意=丁K惶!x %in% y 的意思是“對(duì)x里的每個(gè)元素進(jìn)行判斷评矩,判斷它是否在y中存在叶堆,存在就返回TRUE,不存在就返回FALSE”斥杜,多的元素在前虱颗,少的元素在后。
-
arrange(),按某1列或某幾列對(duì)整個(gè)表格進(jìn)行排序
arrange(test, Sepal.Length)#默認(rèn)從小到大排序
arrange(test, desc(Sepal.Length))#用desc從大到小
- summarise():匯總
summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 計(jì)算Sepal.Length的平均值和標(biāo)準(zhǔn)差
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) **先按照先按照Species分組蔗喂,計(jì)算每組Sepal.Length的平均值和標(biāo)準(zhǔn)差**
其中忘渔, A tibble: 3 x 3
=行*列
Groups: Species [3]
以。缰儿。進(jìn)行的分組
dplyr兩個(gè)實(shí)用技能
管道操作 %>%
magrittr包畦粮,主要定義了4個(gè)管道操作符,分另是%>%, %T>%, %$% 和 %<>%返弹。其中锈玉,操作符%>%是最常用的,其他3個(gè)操作符义起,與%>%類似拉背,在特殊的使用場景會(huì)起到更好的作用。
[R中的管道操作符%>%]http://www.reibang.com/p/7d034789da41
count統(tǒng)計(jì)某列的unique值
count(test,Species)
不同物種中的數(shù)量
dplyr處理關(guān)系數(shù)據(jù)
data.frame()函數(shù)用法:將兩個(gè)表進(jìn)行連接
test1 <- data.frame(x = c('b','e','f','x'), z = c("A","B","C",'D') stringsAsFactors = F)
stringsAsFactors=FALSE作用:用read.table和其衍生品比如read.csv read.delim,R會(huì)自動(dòng)把字符串string的列辨認(rèn)成factor默终。比如你有一個(gè)全班成績數(shù)據(jù)集,第一列名字,第二列性別,第三列語文成績,第四列數(shù)學(xué)成績椅棺。那么第一列和第二列如果你不告訴R
stringsAsFactors=FALSE 那么R就把這兩列認(rèn)成因子模式factor了。
- 內(nèi)連接inner_join,取交集
指僅僅保留x,y中相匹配的觀測(cè)齐蔽,相當(dāng)于取了個(gè)交集;以 by="x"為基準(zhǔn)两疚,下同
inner_join(test1, test2, by = "x")
- 外連接
1 左連接 left_join
y中未匹配的觀測(cè)丟棄,x中未匹配的觀測(cè)保留含滴,y中以NA填充
left_join(test1, test2, by = 'x')
2 全連full_join
x,y中觀測(cè)全部保留诱渤,相當(dāng)于取了并集
full_join( test1, test2, by = 'x')
- 半連接:semi_join
保留x中與y匹配的觀測(cè),它與內(nèi)連接的不同在于谈况,取交集但是并不合并y而僅僅是保留了x勺美,y的作用是做了篩選而已
semi_join(x = test1, y = test2, by = 'x')
- 反連接:anti_join
是半連接的反向操作,用y做篩選递胧,找出非相交的部分保留下來
anti_join(x = test2, y = test1, by = 'x')
- 簡單合并
在相當(dāng)于base包里的cbind()函數(shù)和rbind()函數(shù);
注意,bind_rows()函數(shù)需要兩個(gè)表格列數(shù)相同
而bind_cols()函數(shù)則需要兩個(gè)數(shù)據(jù)框有相同的行數(shù)