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