如何解决删除基于 2 列的重复项,但保留第 3 列不为空的行
我有一个在名称和日期中有一些重复的数据集,但是第 3 列有一个数字或空值,当删除重复时我想使条件保持在第 3 列中的非空值>
示例:
我想保留所有蓝色的,所以你可以看到我不想去掉所有的空值。如果我突出显示日期和名称列并删除重复项,则它首先保留,并且没有关于数字在重复项中显示为第一还是第二的模式。
任何帮助将不胜感激。
谢谢
解决方法
试试这个:
library(gdata)
your.data <- tibble(
Name = c("Wanita Jones","Wanita Jones","Corbin Dallas","Alex Mills","Andrea Coyle","Andrea Coyle"),Date = c("01/24/2021","01/24/2021","03/28/2021","03/29/2021","03/31/2021","03/27/2021","04/01/2021"),Request = c("null",6,7,"null",1,10,"null")
)
your.data %>% filter(
!duplicated2(interaction(Name,Date)) | Request != "null"
)
输出:
# A tibble: 7 x 3
Name Date Request
<chr> <chr> <chr>
1 Wanita Jones 01/24/2021 6
2 Corbin Dallas 03/28/2021 7
3 Corbin Dallas 03/29/2021 null
4 Corbin Dallas 03/31/2021 1
5 Alex Mills 01/24/2021 10
6 Andrea Coyle 03/27/2021 null
7 Andrea Coyle 04/01/2021 null
如果您对安装 gdata
没有兴趣,您可以先对 Request 进行排序,确保重复项的第一项始终是不为 null 的项:
your.data %>% arrange( Request == "null" ) %>%
filter(
!duplicated(interaction(Name,Date)) | Request != "null"
) %>% arrange( Date,Name )
或者只是粘贴 source
中的函数版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。