【发布时间】:2019-08-01 05:26:38
【问题描述】:
在每个子组(a、b、c、d 等)加入 4 个具有最小和最大日期的数据场后,最终数据帧具有以下列:
Id a_min_date_df1 a_max_date_df1 a_min_date_df2 a_max_date_df2 a_min_date_df3 a_max_date_df3 a_min_date_df4 a_max_date_df4
1 2014-01-01 2014-01-10 NA NA NA NA 2014-02-20 2014-05-01
2 2014-02-01 2014-02-10 NA NA 2015-02-20 2015-03-01 NA NA
对于某些 ID,我只能从 2 个数据帧中的 1 个而不是所有 4 个数据帧中获得最小和最大日期。
我要补充:
具有每个子组(a、b、c、d 等)最小日期列的最小日期的新列
具有每个子组(a、b、c、d 等)最大日期列的最大日期的新列
- 计算新的最大和最小日期之间差异的列,如果差异超过 365 天, 比我想调整新的最小和最大日期并用原始日期替换它们:a_min_date_df1 和 a_max_date_df1
我已经尝试过了,它可以工作,但是 df 有超过 500 个子组,我无法为每个子组手动完成。
mutate(df, a_min= pmin(a_min_date1_df1, a_min_date1_df2, a_min_date1_df3, a_min_date1_df4, na.rm=TRUE),
a_max= pmax(a_max_date1_df1, a_max_date1_df2, a_max_date1_df3, a_max_date1_df4, na.rm=TRUE)
我开始用 mutate(df, a_min= pmin(setdiff(starts_with("a_"), ends_with(min_date), na.rm=TRUE), a_max= pmax(setdiff(starts_with("a_ "), ends_with(min_date), na.rm=TRUE)) 这对我不起作用。欢迎所有建议。
【问题讨论】: