ddply 中的 ifelse 总结在执行 max 时不起作用

ifelse in ddply summarize not working when doing max

我正在尝试使用 ddply 来总结 R 中的数据帧及其工作正常,除非我添加 ifelse 以在字段与值不匹配时找到最大日期时间(最后一次),在大多数情况下它给出 Null .不知道我哪里错了。

"last_act_date" = max(ifelse(name == "$view", time, NA)),

完整代码为

ahoy_unique_users <- ddply(ahoy_events_acc, .(account_id), summarise, 
                           "start_date" = as.Date(min(time)),
                           "last_date" = as.Date(max(time)),
                           "last_act_date" = max(ifelse(name == "$view", time, NA))
                           )

plyr 早已停用,我建议改用 dplyrreproducible example 会有助于理解问题。使用 dplyr 你可以试试 :

library(dplyr)

ahoy_events_acc %>%
  mutate(time = as.Date(time)) %>%
  group_by(account_id) %>%
  summarise(start_date = min(time), 
            last_date = max(time), 
            last_act_date = max(time[name == "$view"]))

我认为 last_act_date = max(time[name == "$view"])) 也应该适用于您的 plyr 代码。