我有一个非常大的数据框架,我需要按品牌过滤,其中有50多个可用行,列估值中的零值少于10个。我用dplyr
可复制的例子
library(dplyr)
library(magrittr)
df <- data.frame(brand=c("Advert","Advert","Bass","Bass","Bass"),
date=c("2019-07-15","2019-08-15","2018-01-01","2018-02-15","2015-01-10"),
valuation=c(0,1,0,1,1))
# What I have reached so far...
df %>% dplyr::add_count(brand) %>% group_by(brand) %>% add_count(valuation==0)
> df %>% dplyr::add_count(brand) %>% group_by(brand) %>% add_count(valuation==0)
# A tibble: 5 x 6
# Groups: brand [2]
brand date valuation n `valuation == 0` nn
<fct> <fct> <dbl> <int> <lgl> <int>
1 Advert 2019-07-15 0 2 TRUE 1
2 Advert 2019-08-15 1 2 FALSE 1
3 Bass 2018-01-01 0 3 TRUE 1
4 Bass 2018-02-15 1 3 FALSE 2
5 Bass 2015-01-10 1 3 FALSE 2
我将使用列“n”来过滤超过50行的品牌,但请注意列“nn”中的预期结果应为:
1
1
1
1
1
事实上,我需要计算的比例零价值的品牌组,但我坚持计数零的品牌
2条答案
按热度按时间5lhxktic1#
不要使用
add_count
作为第二个标准。可以直接使用sum
。noj0wjuj2#
不需要添加
n
和nn
列进行筛选。您可以直接filter
如下所示: