美文网首页R数据科学
5.dplyr处理关系数据(2)

5.dplyr处理关系数据(2)

作者: 木制品_1125 | 来源:发表于2019-07-18 23:05 被阅读0次

    二、筛选连接

    ##semi_join(x, y) 保留x表中与y表中的观测相匹配的所有观测
    ##anti_join(x, y) 丢弃x表中与y表中的观测相匹配的所有观测
    top_dest <- flights %>%
      count(dest, sort = T) %>%
      head(10)  # 筛出最受欢迎的前10个目的地
    
    flights %>%
      filter(dest %in% top_dest$dest)  # 这是一种筛选方法,但很难扩展到多个变量
    
    flights %>%
      semi_join(top_dest)  # 这种筛选方法可以筛选多个变量
    
    flights %>%
      anti_join(planes, by = "tailnum") %>%
      count(tailnum, sort = T)  # 没有匹配到tailnum的统计
    
    需要注意的问题

    1.尽量寻找主键,而不是变量组合
    2.确保主键没有缺失值
    3.检查外键与主键是否相匹配

    三、集合操作

    intersect(x, y)  # 返回既在x中,又在y中的观测
    union(x, y)  # 返x,y中唯一的观测
    setdiff(x, y)  # 返回在x表,但不在y表中的观测
    
    df1 <- tribble(
      ~x, ~y,
      1,1,
      2,1,
      3,2
    )
    df2 <- tribble(
      ~x, ~y,
      1,1,
      1,2,
      2,3
    )
    intersect(df1, df2)
    union(df1, df2)
    setdiff(df1, df2)
    setdiff(df2, df1)
    

    相关文章

      网友评论

        本文标题:5.dplyr处理关系数据(2)

        本文链接:https://www.haomeiwen.com/subject/oncdlctx.html