使用以总和为单位的当前计算值使用data.table计算R中的另一个值

时间:2019-03-04 00:51:56

标签: r group-by dplyr data.table aggregation

我正在尝试找出如何使用我刚刚计算出的值来计算下表中的所需结果。我知道如何使用dplyr来做到这一点,但是我被困在尝试使用data.table的过程中。

本质上,我将“国家”分组,并为新列“期望的结果”求和它们的“卷A”值,然后使用该新值并将其从其特定行中的相应“卷B”数据中减去。

Country | Volume A | Volume B | Desired Results    
Canada  | 100      | 50       | 250 
Canada  | 200      | 150      | 150 
USA     | 500      | 200      | 400 
France  | 0        | 0        | 0
USA     | 100      | 200      | 400

1 个答案:

答案 0 :(得分:2)

我们可以使用以下内容,其中NewCol代表期望的结果。

 df[,NewCol:=sum(Volume.A)-Volume.B,.(Country)][]
       Country Volume.A Volume.B Desired.Results NewCol
    1:  Canada      100       50             250    250
    2:  Canada      200      150             150    150
    3:     USA      500      200             400    400
    4:  France        0        0               0      0
    5:     USA      100      200             400    400