【发布时间】:2019-07-23 18:54:13
【问题描述】:
我正在尝试从一个单独的表 (dataset2) 中汇总默认值的计数和平均数量,其中 Date2 出现在每个 id 的 Dataset1 中的 Date1 之前。 p>
数据集1
Date1 ID
31.12.2013 A
31.12.2016 C
31.12.2012 S
31.12.2014 T
31.8.2015 D
31.8.2014 D
31.8.2016 H
31.8.2012 I
31.8.2013 J
数据集2
ID Date2 Amount Type
A 1.2.2010 2 Default
A 1.2.2016 3 Default
C 1.4.2014 1 Default
T 1.1.2016 2 Default
D 1.1.2015 3 Default
D 1.4.2014 4 Default
H 1.9.2016 5 Default
I 1.5.2015 5 Default
J 1.5.2015 5 Default
预期结果:
Date1 ID Count_of_defaults_before_Date2 Avg_Amount_before_date2
31.12.2013 A 1 2
31.12.2016 C 1 1
31.12.2012 S 0 0
31.12.2014 T 0 0
31.8.2015 D 2 3.5
31.8.2014 D 1 4
31.8.2016 H 1 5
31.8.2012 I 0 0
31.8.2013 J 0 0
到目前为止,我已经花了几个小时在谷歌上搜索解决方案,尝试了 data.table 和带有 If-then 语句的复杂循环,但不幸的是没有运气。作为初学者,我真的很感激一些帮助!
提前谢谢你!
【问题讨论】:
-
IDs 是否总是相同的(即它们在两个数据集中是否相同)?示例中的情况似乎并非如此。 -
您好! Dataset1 中的唯一
IDs 比 Dataset2 中的更多。基本上,Dataset1 是从 Dataset2 收集附加数据的“主”(如果可以找到 ID 并且date2s 发生在date1之前) .否则,该行的 avg 和 count 应设置为零。 @NelsonGon -
另请注意,相同的
ID可以在Dataset1 上找到多个不同的date1s。所以聚合应该逐行进行。 @NelsonGon