使用group by sum中的当前计算值,使用data.table计算R中的另一个值

使用group by sum中的当前计算值,使用data.table计算R中的另一个值,r,group-by,dplyr,data.table,aggregation,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

我正试图找出如何使用我刚刚计算的值来计算下表中所需的结果。我知道如何使用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

我们可以使用以下公式,其中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

为什么法国不是0,像sum0-0?哦,对不起,应该是0。我会编辑的。但那是因为我还试图添加一个条件,如果总和为0,则将其设为NA。