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