根据r中的行值将列聚合为新列

首先,如果这是一个简单的问题,那么对R来说是超新手,就这样吧。

我正在寻找一种基于日期和ID汇总行的方法,但要根据te colums的值之一来排列值。

基本上我想将其转换为:

       DATE       ID    V1    V2    SHIFT
1    2020-05-21    A    21    34    morning
2    2020-05-21    A    6     12    afternoon
3    2020-05-20    A    19    15    morning
4    2020-05-20    A    7     16    afternoon
5    2020-05-20    B    17    20    morning
6    2020-05-20    B    5     11    afternoon

变成这个:

       DATE       ID    V1_mor    V2_mor    V1_aft    V2_aft
1    2020-05-21    A      21        34         6        12
2    2020-05-20    A      19        15         7        16
3    2020-05-20    A      17        20         5        11

我已经尝试过执行循环并添加一堆“ if”语句的方法,但是我不想陷入不良做法。

目的是让我以后可以添加另一列,其计算方式为(v1_mor * v2_aft)/ v2_mor