• R语言semi_join(),anti_join(),nest_join()函数


    Filtering joins filter rows from x based on the presence or absence of matches in y:

    semi_join() return all rows from x with a match in y.

    anti_join() return all rows from x without a match in y.

    # "Filtering" joins keep cases from the LHS
    band_members %>% semi_join(band_instruments)
    #> Joining, by = "name"
    #> # A tibble: 2 x 2
    #>   name  band   
    #>   <chr> <chr>  
    #> 1 John  Beatles
    #> 2 Paul  Beatles
    band_members %>% anti_join(band_instruments)
    #> Joining, by = "name"
    #> # A tibble: 1 x 2
    #>   name  band  
    #>   <chr> <chr> 
    #> 1 Mick  Stones
    

    semi_join只返回x表格中中可以跟y表格匹配的行,anti_join返回x表格中与y表格不匹配的行。

    nest_join() returns all rows and columns in x with a new nested-df column that contains all matches from y. When there is no match, the list column is a 0-row tibble.

    nest_join()类似left_join(),返回的形式不一样。

    band_members %>% nest_join(band_instruments)
    #> Joining, by = "name"
    #> # A tibble: 3 x 3
    #>   name  band    band_instruments
    #>   <chr> <chr>   <list>          
    #> 1 Mick  Stones  <tibble [0 × 1]>
    #> 2 John  Beatles <tibble [1 × 1]>
    #> 3 Paul  Beatles <tibble [1 × 1]>
    

    nest_join之后,band_instruments的结果打印出来

    [[1]]
    # A tibble: 0 x 1
    # … with 1 variable: plays <chr>
    
    [[2]]
    # A tibble: 1 x 1
      plays 
      <chr> 
    1 guitar
    
    [[3]]
    # A tibble: 1 x 1
      plays
      <chr>
    1 bass 
    

    对比left_join

    > band_members %>% left_join(band_instruments)
    Joining, by = "name"
    # A tibble: 3 x 3
      name  band    plays 
      <chr> <chr>   <chr> 
    1 Mick  Stones  NA    
    2 John  Beatles guitar
    3 Paul  Beatles bass 
    
  • 相关阅读:
    116填充每个节点的下一个右侧节点指针
    115不同的子序列
    114.二叉树展开为链表
    LeetCode 面试题55
    LeetCode 110. 平衡二叉树
    LeetCode 152. 乘积最大子数组
    LeetCode 面试题58
    LeetCode 151. 翻转字符串里的单词
    LeetCode 25. K 个一组翻转链表
    LeetCode 面试题61. 扑克牌中的顺子
  • 原文地址:https://www.cnblogs.com/yaos/p/14016311.html
Copyright © 2020-2023  润新知