學習小組DAY6筆記 R包-嗷嗚

今天的學習內(nèi)容是R包的安裝和應用。
主要學習資料來源:微信公眾號生信星球

一、什么是R包

R包是多個函數(shù)的集合,具有詳細的說明和示例。

二、安裝、加載R包

1. 鏡像設(shè)置

鏡像設(shè)置是為了加速R包的下載,因而要設(shè)置國內(nèi)的鏡像。在這里我們需要設(shè)置一下R的配置文件.Rprofile。
主要參考了這篇文章:你還在每次配置Rstudio的下載鏡像嗎?
第一步,file.edit('~/.Rprofile')編輯文件。
第二步,設(shè)置鏡像網(wǎng)站。

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #對應清華源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #對應中科大源

第三步,保存,重啟Rstudio。
第四步,options()$reposoptions()$BioC_mirror查看是否設(shè)置成功。

2. 安裝

通過谷歌搜素目標R包在CRAN還是Biocductor上
在CRAN:install.packages(“包”)
在Biocductor:BiocManager::install(“包”)

3. 加載
library(包)
require(包)

兩者都可以加載包,但有一些區(qū)別:

當加載一個不未下載的包時:require()會發(fā)出警告但繼續(xù)執(zhí)行程序,如果將其賦值給X<-require("xixihaha"),查看X可知返回了FALSE;而library()則會終止運行程序,并報錯。
From: R中require()和library的區(qū)別

三、dplyr五個基本函數(shù)

test為示例的數(shù)據(jù)框

1. mutate():新增列

mutate(test, new = Sepal.Length * Sepal.Width) new為新增的列

2. select():按列篩選
  • 按列號篩選
    select(test,列號)
  • 按列名篩選
select(test,列名) #列名可多個
vars <- c("Petal.Length", "Petal.Width")
select(test, one_of(vars)) #one_of()是用來聲明選擇括號內(nèi)的對象的
3. filter():篩選行
filter(test, Species == "setosa") #這里篩選條件要用==
filter(test, Species == "setosa"&Sepal.Length > 5 ) #多個篩選條件時用&連接
filter(test, Species %in% c("setosa","versicolor")) # %in%取交集
4. arrange():按列排序
arrange(test, 列名) #默認從小到大排序
arrange(test, desc(列名)) #用desc從大到小
5. summarise():匯總

可結(jié)合group_by()函數(shù)進行分組匯總。

summarise(test, mean(列名), sd(列名)) #計算Sepal.Length的平均值和標準差并匯總
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) #先按照Species分組,計算每組Sepal.Length的平均值和標準差

四、dplyr兩個實用技能

1. 管道操作:%>% (cmd/ctr + shift + M)

%>%:相當于將左邊的作為右邊函數(shù)的第一個參數(shù)。

舉例:
test %>% 
  group_by(Species) %>% 
  summarise(mean(Sepal.Length), sd(Sepal.Length))
2. count統(tǒng)計某列的unique值

count(test,列名)

五、dplyr處理關(guān)系數(shù)據(jù)

即連接兩個表
注:不要引入factor

test1 <- data.frame(x = c('b','e','f','x'), 
                    z = c("A","B","C",'D'),
                    stringsAsFactors = F) #stringAsFactors=F表示在讀入數(shù)據(jù)時,遇到字符串之后,不將其轉(zhuǎn)換為factors,仍然保留為字符串格式
1. 內(nèi)連inner_join():取交集

只返回兩個表中聯(lián)結(jié)字段相等的行
inner_join(test1, test2, by = "x")

2. 左連left_join()

返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄
注意,下面兩段代碼中test1,test2的位置調(diào)換了,結(jié)果不一樣。

left_join(test1, test2, by = 'x')
##   x z  y
## 1 b A  2
## 2 e B  5
## 3 f C  6
## 4 x D NA
left_join(test2, test1, by = 'x')
##   x y    z
## 1 a 1 
## 2 b 2    A
## 3 c 3 
## 4 d 4 
## 5 e 5    B
## 6 f 6    C
3. 全連full_join()

只要其中某個表存在匹配,full_join就會返回行。
full_join( test1, test2, by = 'x')

4. semi_join():返回能夠與y表匹配的x表所有記錄
semi_join(x = test1, y = test2, by = 'x')
##   x z
## 1 b A
## 2 e B
## 3 f C
5. anti_join():返回無法與y表匹配的x表的所記錄
anti_join(x = test2, y = test1, by = 'x') #注意區(qū)分,第一個x=中的x為函數(shù)的參數(shù),第二個by='x'中的x是列名
6. 簡單合并

相當于base包里的cbind()函數(shù)和rbind()函數(shù)。注意,bind_rows()函數(shù)需要兩個表格列數(shù)相同,而bind_cols()函數(shù)則需要兩個數(shù)據(jù)框有相同的行數(shù)

如下:

bind_rows和bind_cols

有關(guān)dplyr包的更多信息可以看這里:R語言dplyr包超完整版函數(shù)指南

今天的思維導圖:
Day6思維導圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 2020-04-08今天的內(nèi)容是學習R包(多個函數(shù)的集合),以dplyr為例。 一、配置Rstudio的下載鏡像 ...
    a飯飯o閱讀 373評論 0 1
  • 今天的內(nèi)容主要是學習R包,包括包的安裝、加載等;并且以dplyr包進行了舉例,此包中主要包含了可對數(shù)據(jù)框進行操作的...
    soda0301閱讀 423評論 0 0
  • 一、設(shè)置鏡像 通過file.edit('~/.Rprofile')來編輯R配置文件.Rprofile在.Rprof...
    胡看穿HOO閱讀 336評論 0 0
  • 學習R包 (以dqlyr為例) 安裝和加載R包 1.鏡像設(shè)置 初級模式 進行相關(guān)配置 但是這個是CRAN的鏡像,如...
    松風閱讀 354評論 0 0
  • Rstudio的R包學習 R包是多個函數(shù)的集合,具有詳細的說明和示例。 安裝和加載R包 鏡像設(shè)置 在腳本編輯器中的...
    dodowfeng閱讀 325評論 0 0

友情鏈接更多精彩內(nèi)容