【问题标题】:Removing duplicates based on 2 columns but keeping the row where the 3rd column is not null基于 2 列删除重复项,但保留第 3 列不为空的行
【发布时间】:2021-04-30 05:41:02
【问题描述】:

我有一个数据集,其名称和日期中有一些重复项,但是第三列有一个数字或空值,当删除重复项时,我想让条件保持第三列中的非空值

示例:

table

我想保留所有蓝色的,所以你可以看到我不想去掉所有的空值。如果我突出显示日期和名称列并删除它首先保留的重复项,并且没有关于数字在重复项中显示为第一个还是第二个的模式。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: powerbi-desktop


    【解决方案1】:

    试试这个:

    
    library(gdata)
    
    your.data <- tibble(
        Name = c("Wanita Jones" , "Wanita Jones", "Corbin Dallas", "Corbin Dallas", "Corbin Dallas", "Corbin Dallas", "Alex Mills", "Alex Mills", "Andrea Coyle", "Andrea Coyle"),
        Date = c("01/24/2021"   , "01/24/2021", "03/28/2021", "03/28/2021", "03/29/2021", "03/31/2021", "01/24/2021", "01/24/2021", "03/27/2021", "04/01/2021"),
        Request = c("null"      , 6, 7, "null", "null", 1, "null", 10, "null", "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 没有兴趣,可以先按要求排序,确保重复项的第一项始终是不带空值的项:

    
    your.data %>% arrange( Request == "null" ) %>%
        filter(
            !duplicated(interaction(Name,Date)) | Request != "null"
        ) %>% arrange( Date, Name )
    
    

    或者只是粘贴source中的函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-12
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2016-12-02
      • 2016-04-26
      • 1970-01-01
      相关资源
      最近更新 更多