R語言中duplicated函數:去重復,取重復


1、創建測試數據

> test <- c(1,2,3,1,1,2,5) ##創建向量測試數據
> test
[1] 1 2 3 1 1 2 5
> duplicated(test)   ## 基本用法,返回邏輯值,非重復為F,重復為T
[1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE
>

 

2、對向量去重復、取重復

> test[!duplicated(test)] ##對向量test取唯一值,去重復 [1] 1 2 3 5
> test[duplicated(test)] ##取向量test中的重復值 [1] 1 1 2

 

 

3、duplicated在數據框中的操作  參考 :https://blog.csdn.net/xxzhangx/article/details/52369174

> test <- data.frame(x1 = c(1,2,3,4,5,1,3,5),x2 = c("a","b","c","d","e","a","b","e"), x3 = c("a","b","c","d","e","a","c","e")) ##創建測試數據 > test x1 x2 x3 1  1 a a 2  2 b b 3  3 c c 4  4 d d 5  5 e e 6  1 a a 7  3 b c 8  5 e e > duplicated(test) ## 可以對數據框直接返回邏輯值,以行為單位 [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE > test[duplicated(test),] ## 提取重復行 x1 x2 x3 6  1 a a 8  5 e e > test[!duplicated(test),] ## 提取唯一行 x1 x2 x3 1  1 a a 2  2 b b 3  3 c c 4  4 d d 5  5 e e 7  3 b c > duplicated(test[,c(2:3)]) ## 僅利用2、3列返回重復邏輯值 [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE > test[duplicated(test[,c(2:3)]),] ## 利用2、3列中的重復邏輯值返回重復行 x1 x2 x3 6  1 a a 8  5 e e > test[!duplicated(test[,c(2:3)]),] ## 利用2、3列中的重復邏輯值返回非重復行 x1 x2 x3 1  1 a a 2  2 b b 3  3 c c 4  4 d d 5  5 e e 7  3 b c > duplicated(test$x1) ## 利用單列返回重復邏輯值 [1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE > test[duplicated(test$x1),] ##利用單列返回重復邏輯值取重復行 x1 x2 x3 6  1 a a 7  3 b c 8  5 e e > test[!duplicated(test$x1),] ## 取非重復行 x1 x2 x3 1  1 a a 2  2 b b 3  3 c c 4  4 d d 5  5  e  e

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM