group_by并计算R中每列中的元素数

时间:2019-03-01 05:05:24

标签: r group-by aggregate summarize

我有一个如下数据表:

city         year    t_20   t_25 
Seattle      2019    82      91  
Seattle      2018     0      103   
NYC          2010    78       8 
DC           2011    71       0  
DC           2011     0       0    
DC           2018    60       0

我想按cityyear对它们进行分组 并计算每组中的零个数。

我该怎么做?通过summarize_at

df %>% group_by(city, year) %>% summarise_at( WHAT GOES HERE , vars(t_20:t_25))

summarize_at的第一个参数应该是什么?

或其他方式? tally

1 个答案:

答案 0 :(得分:0)

简单的分组操作很适合使用SQL进行表述。对于那些倾向于使用SQL的人,我们还可以尝试使用sqldf库解决此问题:

library(sqldf)

sql <- "SELECT city, COUNT(CASE WHEN t_20 = 0 THEN 1 END) AS t_20_cnt,
            COUNT(CASE WHEN t_25 = 0 THEN 1 END) AS t_25_cnt
        FROM df
        GROUP BY city"

output <- sqldf(sql)