过滤和计数而不总结数据框

时间:2017-09-26 11:42:03

标签: r dplyr

我有一个数据框,我想按一定数量的某些标准出现来过滤行。

示例:

yelp_tbl_asian %>% count(name) %>% filter(n > 10)

# A tibble: 16 x 2
                 name     n
                <chr> <int>
 1       China Buffet    12
 2       China Garden    12
 3        China House    14
 4         China Star    13

在该步骤之后,我想按其他标准过滤/编辑数据框。

示例:

yelp_tbl_asian %>% filter(rating > 3.5) %>% select(attributes) %>% dmap(unlist) %>% count(attributes) %>% arrange(desc(n))

# A tibble: 227 x 2
                         attributes     n
                              <chr> <int>
 1         RestaurantsTakeOut: True  3265
 2        RestaurantsAttire: casual  3233
 3                GoodForKids: True  2986
 4 BusinessAcceptsCreditCards: True  2939

问题是,第一步是从数据集中删除以下条件。因此,在第一次过滤后,第二步不再可能。我想结合两个命令/步骤。

1 个答案:

答案 0 :(得分:0)

正如评论中所建议的,您可以继续合并。我更喜欢避免这种情况,并使用group_by + mutate组合来避免对表进行汇总,只需添加一个包含每个名称计数的列(重复次数与观察次数相同):

yelp_tbl_asian %>% group_by(name) %>% mutate(n=n()) %>% filter(n > 10)

然后,您可以通过为第二步添加更多过滤器来继续管道。