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
早已停用,我建议改用 dplyr
。 reproducible 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
代码。
我正在尝试使用 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
。 reproducible 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
代码。