R语言中的dplyr条件计数函数

时间:2018-02-06 18:24:36

标签: r

在以下代码中,项目b的第2笔付款为零值。使用管道%>%,可以将项目b的计数显示为2而不是3,因为在第2次付款时没有b付款?

df <-data.frame("item" = c("a","b", "b","a","b"), "payment" = c(10,20,0,40,30) )

df_sum <-
  df %>%
  group_by(item) %>%
  summarise(total = sum(payment),
            totalcount =n())

1 个答案:

答案 0 :(得分:2)

您可以过滤掉您不想要的行。例如,如果您不想计算payment = 0的行数,可以使用filter

df %>%
  group_by(item) %>%
  filter(payment > 0) %>% 
  summarise(total = sum(payment),
            totalcount =n())
# A tibble: 2 x 3
  item  total totalcount
  <fct> <dbl>      <int>
1 a      50.0          2
2 b      50.0          2