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
复制代码

 

  

posted @   小鲨鱼2018  阅读(27939)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示