如何在R資料框列中刪除連續重複的重複項?
通常情況下,重複的值會導致資料中出現重複,如果這些值不太可能對分析結果造成偏差,我們可能希望去除這些值。例如,如果我們有一列定義了一個過程,我們對該過程進行了五次輸出,但每次都得到相同的輸出,那麼我們可能只需要使用一個輸出。
示例1
考慮以下資料框:
ID<−1:20 x<−sample(0:2,20,replace=TRUE) df1<−data.frame(ID,x) df1
輸出
ID x 1 1 1 2 2 1 3 3 0 4 4 1 5 5 0 6 6 2 7 7 1 8 8 1 9 9 1 10 10 2 11 11 2 12 12 1 13 13 2 14 14 2 15 15 0 16 16 1 17 17 2 18 18 1 19 19 1 20 20 0
刪除df1列x中的連續重複項:
Repeated1<−cumsum(rle(as.character(df1$x))$length) df1[Repeated1,]
輸出
ID x 2 2 1 3 3 0 4 4 1 5 5 0 6 6 2 9 9 1 11 11 2 12 12 1 14 14 2 15 15 0 16 16 1 17 17 2 19 19 1 20 20 0
示例2
ID<−1:20 y<−sample(1:5,20,replace=TRUE) df2<−data.frame(ID,y) df2
輸出
ID y 1 1 1 2 2 5 3 3 1 4 4 2 5 5 5 6 6 1 7 7 2 8 8 1 9 9 1 10 10 4 11 11 4 12 12 2 13 13 3 14 14 4 15 15 5 16 16 4 17 17 1 18 18 1 19 19 5 20 20 4
刪除df2列y中的連續重複項:
Repeated2<−cumsum(rle(as.character(df2$y))$length) df2[Repeated2,]
輸出
ID y 1 1 1 2 2 5 3 3 1 4 4 2 5 5 5 6 6 1 7 7 2 9 9 1 11 11 4 12 12 2 13 13 3 14 14 4 15 15 5 16 16 4 18 18 1 19 19 5 20 20 4
示例3
ID<−1:20 z<−sample(11:13,20,replace=TRUE) df3<−data.frame(ID,z) df3
輸出
ID z 1 1 12 2 2 13 3 3 13 4 4 13 5 5 11 6 6 12 7 7 12 8 8 13 9 9 12 10 10 13 11 11 13 12 12 12 13 13 12 14 14 13 15 15 13 16 16 13 17 17 12 18 18 12 19 19 12 20 20 13
刪除df3列z中的連續重複項:
Repeated3<−cumsum(rle(as.character(df3$z))$length) df3[Repeated3,]
輸出
ID z 1 1 12 4 4 13 5 5 11 7 7 12 8 8 13 9 9 12 11 11 13 13 13 12 16 16 13 19 19 12 20 20 13
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP