当前位置:网站首页>R语言去重操作unique duplicate filter
R语言去重操作unique duplicate filter
2022-06-30 10:51:00 【育种数据分析之放飞自我】
比如有一个数据框,根据第一列ID去重,将所有重复的行删除,你用unique和duplicate函数,可能是错误的,这里总结一下。
模拟数据
set.seed(123)
dat = data.frame(ID = c(1:10,9,4,4,9,9,2),y = rnorm(16))
dat

需求:
把ID重复的行都去掉。
错误1:用unique函数
unique函数,会去掉重复的ID,保留不重复的ID,利用 1,2,3,1中1是重复的,用unique之后剩下:1,2,3,而不是2,3。
所以,下面的步骤是错误的。
uid = unique(dat$ID)
dat[dat$ID %in% uid,]

错误2:duplicate函数
duplicate会返回TRUE和FALSE状态,返回的是唯一值,而不是去掉所有重复ID的值。类似unique,不是我们想要的。
dat[!duplicated(dat$ID),]

正确1:用filter函数
先判断出现的次数,提取ID,然后用filter进行提取。
uid = dat %>% count(ID) %>% filter(n ==1) %>% select(ID)
uid
dat[dat$ID %in% uid$ID,]

正确2:用%in%
先用duplicate打印出重复的ID,然后用filter排除即可。
uid2 = dat$ID[duplicated(dat$ID)]
uid2
dat %>% filter(!ID %in% uid2)

完整测试代码:
set.seed(123)
dat = data.frame(ID = c(1:10,9,4,4,9,9,2),y = rnorm(16))
dat
# 错误方法
dat[!duplicated(dat$ID),]
# 正确方法1
uid = unique(dat$ID)
dat[dat$ID %in% uid,]
uid = dat %>% count(ID) %>% filter(n ==1) %>% select(ID)
uid
dat %>% filter(ID %in% uid$ID)
# 正确方法2
uid2 = dat$ID[duplicated(dat$ID)]
uid2
dat %>% filter(!ID %in% uid2)
边栏推荐
- LeetCode Algorithm 86. Separate linked list
- [机缘参悟-34]:光锥之内皆命运
- Handler source code analysis
- datax json说明
- SQL必需掌握的100个重要知识点:创建和操纵表
- 100 important knowledge points that SQL must master: join table
- 14岁懂社会-《关于“工作的幸福”这件事儿》读书笔记
- Livedata source code appreciation III - frequently asked questions
- MCU firmware packaging Script Software
- ArrayList与顺序表
猜你喜欢
![[STL source code analysis] iterator](/img/e8/7c69cf6e96ecfa053494397a21eff0.jpg)
[STL source code analysis] iterator

电化学氧气传感器寿命、工作原理及应用介绍

深潜Kotlin协程(十八):冷热数据流

Esp32-c3 introductory tutorial question ⑨ - core 0 panic 'ed (load access fault) Exception was unhandled. vfprintf. c:1528

考研这些“不靠谱”的经验有多害人?

Cp2112 teaching example of using USB to IIC communication

promise async和await的方法与使用
![[IC5000 tutorial] - 01- use daqdea graphical debug to debug C code](/img/54/037b62ff9682ae9fdf861263211043.png)
[IC5000 tutorial] - 01- use daqdea graphical debug to debug C code

List introduction

电商两位大佬花边新闻刷屏,代表电商回归正常,将有利于实体经济
随机推荐
H3C switch emptying configuration
Flutter 从零开始 008 表单
LVGL 8.2 Checkboxes as radio buttons
LeetCode Algorithm 86. 分隔链表
ARouter 最新问题合集
CP2112使用USB转IIC通信教学示例
什么是微信小程序,带你推开小程序的大门
基于HAL库的LED驱动库
datax json说明
100 important knowledge points that SQL must master: using table aliases
深潜Kotlin协程(十六):Channel
【小程序实战系列】小程序框架 页面注册 生命周期 介绍
[proteus simulation] Arduino uno led simulated traffic light
【STL源码剖析】迭代器
博弈论入门
电商两位大佬花边新闻刷屏,代表电商回归正常,将有利于实体经济
The precision problem of depth texture in unity shader - stepping pit - BRP pipeline (there is no solution, it is recommended to replace URP)
再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大
OLAP数据库引擎如何选型?
AMS源码解析