【发布时间】:2021-07-17 10:23:26
【问题描述】:
我试图将一些观察结果分类为一个日期列是在 R 中的另一个日期列之前还是之后。
数据表:merge_data
两个日期列:case_plan_start_date、date_made
我想将带有 NA 日期的观察分为两类:缺少开始日期或缺少法定日期
我使用了如下所示的 mutate 和 ifelse 函数,它似乎对所有函数都有效,除了第 2 行所说的 is.na(CP_time)。每当我使用 mutate/ifelse 时似乎就是这种情况,它不会识别我的第二个。没有声明。
它将归类为“缺少开始日期”,但对于那些缺少 NA 法定日期的人,它甚至不会归类为“未知”,而是显示为 NA。
如果有人能找到更好或正确的方法,那就太好了。
merge_data_t <- merge_data %>%
mutate(CP_time = lubridate::time_length(difftime(case_plan_start_date, date_made),"days"),
flag_time_CP = ifelse(is.na(CP_time) & (is.na(case_plan_start_date) | case_plan_start_date == ""), "Missing start date",
ifelse(is.na(CP_time), "Missing legal order",
ifelse(CP_time < 0, "before order date",
ifelse(CP_time == 0, "same date as order date",
ifelse(CP_time > 0, "after order date", "unknown")))))
【问题讨论】:
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
标签: r