R语言 数据清洗 重复值所在的行 重复 的筛选与去除,唯一ID出现重复 no重复处理

住院号 姓名 等唯一值变量的检查与筛选
重复值所在的行
使用本地数据 鸢尾花(yuān wěi huā)做示例

【R语言】【数据清洗】重复ID数据获取比对

#加载内置数据
data(iris)
data=iris
#因为iris这里没有唯一的ID,像姓名,住院号no..
#手动生成一个 no,代表唯一值的变量
#可以看到我设置了 41 35 67 和27 是重复的
data$no <- c(paste0('no',c(1:146,41,35,67,27)))
#【1】手动生成新ID
data$ID <- c(paste0('ID',1:150))
#【2】检查重复
table(duplicated(data$no))  #TRUE代表重复的个数
which(duplicated(data$no))  #重复所在的行(第二次出现)
data[duplicated(data[ ,'no']), ] #重复所在的行的数据(第二次出现)
#【3】提取重复的no,并向量化
a=data[duplicated(data[ ,'no']), ]
a
name <- t(a[,'no'])
dd <- as.vector(name)
dd
#【4】查看要去掉的ID,
b=data[which(data$no%in% dd),]
b[, c(1:7)]
#【5】假设要去掉的是 no27=ID27  no35=ID148 no41=ID147 no67=ID67
#【6】去除重复,根据自己创立的ID唯一值去掉不要的
data_unique <- subset(data,ID!="ID27")  
data_unique <- subset(data_unique,ID!="ID148")
data_unique <- subset(data_unique,ID!="ID147")
data_unique <- subset(data_unique,ID!="ID67" )
#s上面一个个换进去,避免提示:长的对象长度不是短的对象长度的整倍数
#【7】最后检查重复情况,都是FALSE表述没有重复了
table(duplicated(data_unique$no))
快速删除重复,随意删除重复的中的一个
#检查ID重复情况
table(duplicated(N6_shunchan$病案号))
#删除重复的行
N6_shunchan2 <- N6_shunchan[!duplicated(N6_shunchan$病案号), ]
#在检查下
table(duplicated(N6_shunchan2$病案号))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值