Manipulating|Manipulating Data-用R查找并移除重复的记录
问题
【Manipulating|Manipulating Data-用R查找并移除重复的记录】你想查找和(或)移除向量或列表里重复项。
方案
向量:
# 生成一个向量
set.seed(158)
x <- round(rnorm(20, 10, 5))
x
#>[1] 14 1184 125 10 1033 1160 168 108566# 对于每一个元素:它是否重复(第一个值不算)
duplicated(x)
#>[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSETRUE FALSETRUETRUE FALSE FALSE FALSE
#> [15]TRUETRUETRUETRUETRUETRUE# 重复项的值
# 注意“6”出现了三次,所以它有俩
x[duplicated(x)]
#> [1] 103 118 108566# 重复的条目,没有重复
unique(x[duplicated(x)])
#> [1] 103 11856# 移除重复的数据,他们效果一样:
unique(x)
#>[1] 14 1184 125 10360 16
x[!duplicated(x)]
#>[1] 14 1184 125 10360 16
列表:
# 一个样本列表:
df <- read.table(header=TRUE, text='
label value
A4
B3
C6
B3
B1
A2
A4
A4
')# 每一行是否有重复?
duplicated(df)
#> [1] FALSE FALSE FALSETRUE FALSE FALSETRUETRUE# 显示重复项
df[duplicated(df),]
#>label value
#> 4B3
#> 7A4
#> 8A4# 显示唯一重复项 (行名可能不同,但值相同)
unique(df[duplicated(df),])
#>label value
#> 4B3
#> 7A4# 移除重复的数据,他们效果一样:
unique(df)
#>label value
#> 1A4
#> 2B3
#> 3C6
#> 5B1
#> 6A2
df[!duplicated(df),]
#>label value
#> 1A4
#> 2B3
#> 3C6
#> 5B1
#> 6A2
原文链接:http://www.cookbook-r.com/Manipulating_data/Finding_and_removing_duplicate_records/
推荐阅读
- vue|图文详解vue.js devtools插件使用方法
- java|LambdaQueryWrapper使用说明
- 使用mybatis的typeHandler对clob进行流读写方式
- 微信小程序获取用户手机号码的详细步骤
- uniapp地图组件(map)使用与遇到的一些问题总结
- visual|vscode jsconfig.json 使用说明
- C数据结构|C数据结构(哈夫曼树算法实现与应用)
- thingsboard|ThingsBoard 使用 REST API HTTP 方法获取遥测数据 属性数据等
- ESP8266|ESP8266使用AT命令上传数据到ONE NET(HTTP方式)
- 移动应用架构之IO蒸馏