dplyr 資料操作 常用函式(3)

2022-08-05 07:21:18 字數 1752 閱讀 7273

接下了我們繼續了解dplyr中有用的函式

1、if_else()

if_else主要用於在資料做判斷用

x

name=c("wang","zhang","li","chen","zhao","song"),

shuxue=c(89,85,68,79,96,53),

yuwen=c(77,68,86,87,92,63),

shengwu=c(85,68,78,68,98,96))

if_else(x[,3:4]>80,"優","差")

以上結果是對資料框中第3和第4列資料進行判斷後顯示的。

2、lead()和lag()

lead(x, n = 1l, default = na, order_by = null, ...)

lag(x, n = 1l, default = na, order_by = null, ...) 

lead和lag函式主要用於替換資料,lead表示由前向後替換,lag表示由後向前替換,n表示替換的個數,default表示要替換的結果,預設為na 。order_by是根據某一列進行排序。

以上操作是把shuxue的資料最後一位替換成88然後生成新列huaxue資料。

同理也可以用lead把資料進行資料替換。

3、nth()

nth(x, n, order_by = null, default = default_missing(x))

從向量中提取資料,注x為向量

a

bnth(a,3)

nth(a,-5)
可以在n前面加符號的形式進行,反向提取資料。

nth(a,3,b)
根據b的序列方向進行提取,並且從b的第乙個值開始進行讀取。

4、n_distinct()

n_distinct(..., na.rm = false)

計算非重複值的個數

a

a

n_distinct(a)
[1] 4  

函式的效果相當於length(unique(a))  

5、order_by()

order_by(order_by, call)  

order_by表示資料排序的形式,call表示用於輸出結果的序列  

order_by(10:1,cumsum(1:10))

cumsum(1:10)
[1]  1  3  6 10 15 21 28 36 45 55

以上是1-10資料累加的結果

最後order_by的結果是用最大值55不斷的減去每個累加結果得到的。  

dplyr 資料操作 常用函式(2)

繼上一節常用函式,繼續了解其他函式 1 desc 這個函式和sql中的排序用法是一樣的,表示對資料進行倒序排序。接下來我們看些例子。a sample 20,50,rep t a desc a 在使用desc後是直接在資料前面加上乙個負號,一般情況下配合arrange 函式一起使用,功能強大。2 di...

04 4 dplyr包高階函式(二)高效資料清理

dplyr高階函式 join 資料集之間的鏈結 left join left join x1,x2,by name 保留全部x1表 inner join inner jooin x1.x2,by name 保留x2,x1的交集 semi join semi join x,y,by name 保留x1...

關於資料處理包dplyr的函式用法總結

dplyr專注處理dataframe物件,並提供更穩健的與其它資料庫物件間的介面。一 5個關鍵的資料處理函式 select 返回列的子集 filter 返回行的子集 arrange 根據乙個或多個變數對行排序。mutate 使用已有資料建立新的列 summarise 對各個群組彙總計算並返回一維結果...