【发布时间】:2018-03-20 18:15:47
【问题描述】:
我在下面提到了 R 中的四个数据框:
DF_1
ID Date
123 18/03/2018 16:45
456 10/03/2018 20:15
DF_2
ID Date1 Date2
123 2018-03-18 06:37:22 1519109133704
123 2018-03-18 06:37:21 1520324827462
123 2018-03-16 04:03:01 1520690354458
456 2018-03-10 14:46:03 1517319313151
456 2018-03-10 14:46:04 1515143046429
456 2018-03-10 14:46:03 1515838021062
456 2018-03-10 14:46:15 1488092209241
DF_3
ID Date1 Date2
123 2018-03-18 06:37:22 1519109133704
123 2018-03-18 06:37:21 1520324827462
123 2018-03-16 04:03:01 1520690354458
456 2018-03-10 14:46:03 1517319313151
456 2018-03-10 14:46:03 1515838021062
456 2018-03-10 14:46:15 1488092209241
DF_4
ID Date1 Date2
123 2018-03-18 06:37:22 1519109133704
123 2018-03-18 06:37:21 1520324827462
456 2018-03-10 14:46:03 1517319313151
456 2018-03-10 14:46:04 1515143046429
使用上面的数据框我想创建下面提到的矩阵:
输出:
DF_2 DF_3 DF_4
ID Date Date1 Total Month Avg Day Last5 Date1 Total Month Avg Day Last5 Date1 Total Month Avg Day Last5
123 18/03/2018
456 10/03/2018
我在下面提到了 6 个值 w.r.t DF_2、DF_3 和 DF_4。
- Date1 = 考虑 DF_1 的
Date不同数据帧中同一日期的行数(这里我们将Date1用于所有数据帧(DF_2、DF_3 和 DF_4))。 - 总计 = 所有其他数据帧(即 DF_2、DF_3 和 DF_4)中每个
ID的总行数 - 月份 = 根据所有其他数据帧(即 DF_2、DF_3 和 DF_4)的
Date2计算月份数 - Avg = 每月平均行数(考虑
Date2)。 - 天 = 每天的平均行数(考虑
Date2)。 - Last5 = 过去五天的行数(考虑
Date1与当前sys.date()的比较)
我有一个大数据框,所以我不能在这里使用 dput(),希望你们能清楚地理解。
【问题讨论】:
-
你试过什么代码?你能把你的例子简化得更具体吗?您可能会更幸运地得到回复。
标签: r dataframe dplyr data.table tidyr