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