NGS科研必備!數據整合神器之dplyr包
dplyr包可用於處理dataframe格式數據,相較於它的前身plyr包,大幅提高了速度,本文著重介紹在數據整合時使用頻率較高的幾個函數,定會讓你在數據整合過程中更為方便快捷。
dplyr也是大神HadleyWickham的大作,HadleyWickham可謂是改變了R的人,其代表作品還有ggplot2、resape等非常有名的軟體包,先用大神的帥照鎮樓:
dplyr包的開源代碼可在github上閱讀,軟體包安裝如下:
#安裝大神所有的軟體包:
install.packages("tidyverse")
#或者只安裝dplyr:
install.packages("dplyr")
#也可安裝開發版的dplyr:
#安裝github上的包,需要先安裝devtools工具包:
#install.packages("devtools")
devtools::install_github("tidyverse/dplyr")
本文主要介紹5個常用的函數:
mutate() 對已有列數據變換並添加新的列,類似標準函數transform
select() 按照列名篩選列,可結合starts_with,ends_with,contains,matches,one_of,num_range和everything等使用
filter() 按照已定條件對行做過濾,類似標準函數subset
arrange() 對數據進行排序,類似標準函數order
summarise() 對數據進行匯總操作,可結合group_by使用,類似標註函數aggregate
install.packages("dplyr")
library(dplyr)
#用iris數據集作為演示,用head()函數查看其前6行:
head(iris)
mutate()函數的使用:
mutate()函數是對已有列數據變換並添加為新的列,類似標準函數transform:
#添加一個新的列new,並且new是Sepal.Length和Sepal.Width的乘積:
df_mutate
head(df_mutate)
select() 函數的使用:
按照列名篩選列,可結合starts_with,ends_with,contains,matches,one_of,num_range和everything等使用:
#變數名稱以Petal開頭的變數
df_select
#變數名稱以Width結尾的變數
df_select
#變數名稱包含etal的變數
df_select
#變數名稱匹配t的變數
df_select
#只篩選Petal.Length,Petal.Width兩個變數
df_select
#篩選所有的變數
df_select
#把需要的變數賦值給vars,然後用one_of模式篩選
vars
df_select
filter() 函數的使用:
按照已定條件對行做過濾,類似標準函數subset,在使用filter之前需要了解一下幾個邏輯操作符:
·==,>,>=,
·&,,!,xor()
·is.na()
·between(),near()
#篩選Species是setosa的數據
df_filter
#篩選Sepal.Length大於5,並且Species是setosa的數據
df_filter 5 & Species == "setosa")
#篩選Sepal.Length大於5,並且Species包含在c("setosa","versicolor")中的數據
df_filter 5 & Species %in%c("setosa","versicolor"))
arrange() 函數的使用:
對數據進行排序,類似標準函數order:
#按照Sepal.Length從小到大排序
df_arrange
#雙變數排序,按照Sepal.Length從小到達,並且按照Sepal.Width從大到小排序
# desc()表示從大到小
df_arrange
summarise函數的使用:
對數據進行匯總操作,可結合group_by使用:
#計算Sepal.Length的平均值和標準差:
df_summarise
#按照Species分組,計算Sepal.Length的平均值和標準差
iris_groups
df_summarise
# dplyr的計算是以tbl格式返回的,我們可以轉成dataframe,當然這步沒必要,但是為了方便顯示:
本文重點介紹這5個函數,當然dplyr包還有其他比較方便的函數,比如join,set,distinct,sample,bind,ifelse等函數,也是非常有用,感興趣的同學可以去學習一下。
/End.
※朵嘉濃星星:斷篇了
※「競技神」號航空母艦:被風暴吹垮艦艏甲板
※人體肌群訓練講解之肱二/三頭肌
※法律思維:王寶強離婚案的「制勝法寶」
※比特幣:潰不成軍、最後的撤退
TAG:公眾號 |