聚合函数都有一个 na.rm 参数,用于在计算之前移除缺失值:
flights %>% group_by(year, month, day) %>% summarize(mean = mean(dep_delay, na.rm = TRUE)) #> Source: local data frame [365 x 4] #> Groups: year, month [?] #> #> year month day mean #>
在本例中,由于缺失值代表被取消的航班,我们也可以先移除被取消的航班来解决这个问题。我们将保存这个数据集,以便在接下来的几个示例中重复使用:
not_cancelled <- flights %>% filter(!is.na(dep_delay), !is.na(arr_delay)) not_cancelled %>% group_by(year, month, day) %>% summarize(mean = mean(dep_delay)) #> Source: local data frame [365 x 4] #> Groups: year, month [?] #> #> year month day mean #>
计数
每当你进行任何聚合操作时,最好都包含一个计数(n()),或者非缺失值的计数(sum(!is.na(x)))。这样你就可以检查自己是否基于非常少量的数据得出了结论。例如,我们