R语言之 删除重复数据

这篇主要介绍如何在R中识别和删除重复数据。

主要用的到R base和dplyr函数:

duplicated():用于识别重复的元素和
unique():用于提取唯一元素,
distinct()[dplyr package]删除数据框中的重复行。

x <- c(1, 1, 2,4, 5, 4, 6)
duplicated(x)
## [1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
x[duplicated(x)]
## [1] 1 4
x[!duplicated(x)]
## 1, 1 2,4, 5, 6

#data.frame中 删除某一列含有重复值的整行数据,用dplyr::filter,如D3,其中id_student列有重复值
D3<- filter(D3,!duplicated(D3$id_student))
#或者
D3<- D3 %>% distinct(id_student,.keep_all = TRUE)
  • 根据某一列删除数据框中重复值
# Remove duplicates based on Sepal.Width columns
my_data[!duplicated(my_data$Sepal.Width), ]
## # A tibble: 23 x 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##          <dbl>       <dbl>        <dbl>       <dbl> <fct>  
## 1          5.1         3.5          1.4         0.2 setosa 
## 2          4.9         3            1.4         0.2 setosa 
## 3          4.7         3.2          1.3         0.2 setosa 
## 4          4.6         3.1          1.5         0.2 setosa 
## 5          5           3.6          1.4         0.2 setosa 
## 6          5.4         3.9          1.7         0.4 setosa 
## # ... with 17 more rows
  • 使用dplyr包删除数据框中的重复行
    函数distinct()[dplyr package]可用于仅保留数据帧中的唯一行。 如果存在重复行,则仅保留第一行。 它是R base函数unique()的高效版本。
根据所有列删除重复的行(完全一样的观测值):
my_data %>% distinct()
根据特定列删除重复值
my_data %>% distinct(Sepal.Length, .keep_all = TRUE)
根据多列删除重复值
my_data %>% distinct(Sepal.Length, Petal.Width, .keep_all = TRUE)
选项.kep_all用于保留数据中的所有变量。

总结

  • 根据一个或多个列值删除重复行:my_data%>%dplyr :: distinct(Sepal.Length)
  • R base函数从向量和数据帧中提取唯一元素:unique(my_data)
  • R基函数确定重复元素:duplicated(my_data)



作者:左手柳叶刀右手小鼠标
链接:https://www.jianshu.com/p/994f2d1a3002
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 17
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值