ddply中的r-ifelse总结了在执行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早已退役,我建议改用dplyr。一个可重复的例子将有助于理解这个问题。使用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代码中工作。

最新更新