學習R包
1.鏡像設(shè)置
file.edit('~/.Rprofile')
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))#清華鏡像
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")#中科大鏡像
options()$repos
options()$BioC_mirror
- Rstudio有兩個重要的配置文件:(Rstudio開啟運行時先會查看配置文件)
- .Renviron 設(shè)置R的環(huán)境變量
- .Rprofile 一種代碼文件
- options函數(shù)用于設(shè)置R運行過程中的一些選項設(shè)置
2.安裝
- make sure the reliability of your Internet
-
install.packages(" packagesName")
安裝的包來自CRAN網(wǎng)站 -
BiocManager::install("packages")
安裝的包來自Bioconductor
3. 加載
library(packagename)
和 require(packagename
#安裝加載三部曲
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)
test <- iris[c(1:2,51:52,101:102),]
4.dplyr五個基本函數(shù)
- mutate()此疹,新增列
mutate(test, New = c(1,2,3,4,5,6))
- select()躬贡,按列篩選
select(test,1) #根據(jù)索引篩選
select(test,Sepal.Length) #根據(jù)列名篩選
select(test,c(1,5)) #借用向量惹悄,按多個索引篩選
- filter()孔飒,按行篩選
filter(test, Species == "setosa")
filter(test, Species == "setosa"&Sepal.Length > 5)
filter(test, Species %in% c("Setosa","versicolor"))
- arrange()抑胎,按某一列或某幾列對整個表格進行排序
arrange(test, Sepal.Length)
arrange(test, desc(Sepal.Length))
- summarise(),匯總
summarise(test,mean(Sepal.Length),sd(Sepal.Length))
group_by(test,Species)
summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Length))
5.dplyr兩個實用功能
- 管道操作
%>%
(cmd/ctr + shift +M)
test %>% group_by(Species) %>% summarise(mean(Sepal.Length),sd(Sepal.Length))
- count統(tǒng)計某列的unique值
count(test,Species)
6.dplyr處理關(guān)系數(shù)據(jù)
- 內(nèi)連inner_join()
inner_join(test1, test2, by = "x") #取交集
- 左連left_join()
left_join(test2, test1, by = 'x') #以左側(cè)第一個數(shù)據(jù)集的x為標準
left_join(test1, test2, by = 'x') #注意兩者結(jié)果并不相同
- 全連full_join()
full_join(test1, test2, by = 'x') #取并集
- 半連接semi_join():
semi_join(test1, test2, by = 'x')
# 返回test1中有,test2中有,的test1中的元素
- 反鏈接(anti_join):
anti_join(test1, test2, by = 'x')
# 返回test1中有科雳,test2中沒有沒有根蟹,的test1中的元素
- 簡單合并
bind_rows(test1, test2) #合并行要求列數(shù)相同
bind_cols(test1, test2)#合并列要求行數(shù)相同
7. 備注
- iris是內(nèi)置數(shù)據(jù)集
- 加載任意一個tidyverse包即可用管道函數(shù)
- base包中有簡單合并函數(shù)
cbind()
rbind()