使用group by sum中的当前计算值,使用data.table计算R中的另一个值
我正试图找出如何使用我刚刚计算的值来计算下表中所需的结果。我知道如何使用dplyr实现这一点,但我被卡住了,并试图在使用data.table时学习它 基本上,我将国家分组,将它们的A卷值相加,得到新的列所需的结果,然后使用新的值,并从它们特定行中各自的B卷数据中减去它使用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
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。