美文网首页R语言学习Cook R数据科学与R语言
Manipulating Data-用R查找并移除重复的记录

Manipulating Data-用R查找并移除重复的记录

作者: 杏月阿六 | 来源:发表于2017-09-13 22:40 被阅读105次

问题

你想查找和(或)移除向量或列表里重复项。

方案

向量:

# 生成一个向量
set.seed(158)
x <- round(rnorm(20, 10, 5))
x
#>  [1] 14 11  8  4 12  5 10 10  3  3 11  6  0 16  8 10  8  5  6  6

# 对于每一个元素:它是否重复(第一个值不算)
duplicated(x)
#>  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
#> [15]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

# 重复项的值
# 注意“6”出现了三次,所以它有俩
x[duplicated(x)]
#> [1] 10  3 11  8 10  8  5  6  6

# 重复的条目,没有重复
unique(x[duplicated(x)])
#> [1] 10  3 11  8  5  6

# 移除重复的数据,他们效果一样:
unique(x)
#>  [1] 14 11  8  4 12  5 10  3  6  0 16
x[!duplicated(x)]
#>  [1] 14 11  8  4 12  5 10  3  6  0 16

列表:

# 一个样本列表:
df <- read.table(header=TRUE, text='
 label value
     A     4
     B     3
     C     6
     B     3
     B     1
     A     2
     A     4
     A     4
')


# 每一行是否有重复?
duplicated(df)
#> [1] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE

# 显示重复项
df[duplicated(df),]
#>   label value
#> 4     B     3
#> 7     A     4
#> 8     A     4

# 显示唯一重复项 (行名可能不同,但值相同)
unique(df[duplicated(df),])
#>   label value
#> 4     B     3
#> 7     A     4

# 移除重复的数据,他们效果一样:
unique(df)
#>   label value
#> 1     A     4
#> 2     B     3
#> 3     C     6
#> 5     B     1
#> 6     A     2
df[!duplicated(df),]
#>   label value
#> 1     A     4
#> 2     B     3
#> 3     C     6
#> 5     B     1
#> 6     A     2

原文链接:http://www.cookbook-r.com/Manipulating_data/Finding_and_removing_duplicate_records/

相关文章

  • Manipulating Data-用R查找并移除重复的记录

    问题 你想查找和(或)移除向量或列表里重复项。 方案 向量: 列表: 原文链接:http://www.cookbo...

  • Manipulating Data-用R生成随机的顺序

    问题 你想事一个数据结构随机化。 方案 注意 为了使随机化可重复,你应该设置随机数生成器。详见:Numbers-生...

  • MySql常用查询语句,字段查重

    字段查重 查找所有重复标题的记录: 一、查找重复记录1、查找全部重复记录 2、过滤重复记录(只显示一条) 注:此处...

  • linux常用命令

    ctrl + r 搜寻历史记录,输入内容重复按ctrl + r可以查找下一个 zip -r -q file.zip...

  • 小米手机编写数据库文件

    打开手机安全助手中设置root权限 打开R.E管理器data->data->app目录->database文件用s...

  • 3.无重复字符的最长子串

    题目 思路1.字符串查找重复字符2.有重复字符则处理重复字符之间的数据并记录长度代码

  • .NET C# 自定义集合扩展

    获取重复元素 添加新元素不重复 获取并移除

  • 查找记录

    如何查找记录 通过属性查找(可能会有重复记录) 通过ID查找 通过属性查找的方法来查找记录 Mongo Queri...

  • Shell uniq 简介

    uniq 用于移除或发现文件中重复的条目 使用 uniq 命令,不带任何选项时,它将移除文件中重复的行并显示但一行...

  • 转载 SQL查询重复记录

    1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 2、删除表中多余的重复记录,重复记录...

网友评论

  • 王诗翔:“显示没有重复的条目 ” 这个翻译不对喔,可以直接翻译为“显示唯一重复项”。对照原文再理解更正一下。
    杏月阿六: @王诗翔 对对对,这样不太好

本文标题:Manipulating Data-用R查找并移除重复的记录

本文链接:https://www.haomeiwen.com/subject/iexrsxtx.html