【发布时间】:2019-01-05 23:42:36
【问题描述】:
数据集具有如下结构
Key Date Mat Amount
<int> <date> <chr> <dbl>
1 1001056 2014-12-12 10025 0.10
2 1001056 2014-12-23 10025 0.20
3 1001056 2015-01-08 10025 0.10
4 1001056 2015-04-07 10025 0.20
5 1001056 2015-05-08 10025 0.20
6 1001076 2013-10-29 10026 3.00
7 1001140 2013-01-18 10026 0.72
8 1001140 2013-04-11 10026 2.40
9 1001140 2014-10-08 10026 0.24
10 1001237 2015-02-17 10025 2.40
11 1001237 2015-02-17 10026 3.40
Mat 采用 {10001,...,11000} 中的值,因此 A:=|Mat|=1000。
我想实现以下目标:
1)(中间步骤)对于每个关键日期组合,我想计算所有材料,这些材料在这种组合中可用(可能因钥匙而异),数量差异, 例如对于组合“1001237 2015-02-17”,这将适用于材料 10025 和 10026 2.40-3.40=-1(但可能是更多组合)。 (如何有效地存储这些值?) 这一步可能会被跳过。
2) 最后,我想构建一个维度为 A=1000 的新矩阵,其中每个条目 (i,j)(材料组合 i 和 j)包含上一步中计算的值的平均值。 更正式地说,条目 (i,j) 由
1/|所有包含 Mat i 和 Mat j 的关键日期组合| \sum_{所有包含 Mat i 和 Mat j 的关键日期组合} Amount_i - Amount_j
由于表相当大,计算效率很重要。
非常感谢您提前提供的帮助!
【问题讨论】:
标签: r variables aggregation