首页 > 解决方案 > 尝试在 r 中的汇总函数中使用条件语句

问题描述

我正在处理来自市政消防部门的数据。我试图确定每个 9-1-1 呼叫的第一辆紧急车辆的到达时间,有些呼叫只有一辆紧急车辆,而其他呼叫不止一辆。每个条目都由一个索书号 (CallNum) 标识,有一个调度时间 (Dispatched)、一个到达时间 (Arrived) 和一个清除时间 (Cleared),还有其他列,但这对于此任务无关紧要。时代以军事风格进入。我能够非常成功地计算出这个。

Woburn2 <- WoburnFire %>% group_by(CallNum) %>%
           summarise(FirstVehicle = min(Arrived), rm.na= TRUE)

这应该是它的结束,但遇到了一些问题。首先,当有多辆紧急车辆到达时间相同时,我在 FirstVehicle 列中得到一个空白值。其次,如果到达时间中有一个空白值,则该空白值将进入 FirstVehicle 列。

那么如何在汇总函数中创建一个 if 语句,如果 min(Arrived) 值为 NA 返回第二个值,如果 Arrived 值都相等,则返回 Arrived 时间。

标签: r

解决方案


rm.na应该是并且na.rm应该在min

library(dplyr)
WoburnFire %>% 
       group_by(CallNum) %>%
       summarise(FirstVehicle = min(Arrived, na.rm = TRUE))

推荐阅读