2017-04-24 23 views
1

使用從上一行值計算當前行值I具有值我怎樣才能在一列中的R

Demand Supply 
1 722.3846 750   
2 774.3762 800 
3 885.1103 900 
4 120.4484 100 
5 175.2068 150 
6 221.1865 250 
7 275.1496 350 
8 320.3225 330 
9 622.3530 650 
10 663.0514 680 
11 683.0443 690 
12 694.6459 700 

的數據幀我想計算的平衡(需求 - 電源)&失衡(需求 - 供應 - 上一個(BAL))

輸出應該想:

Demand Supply  Balance     Imbalance 
    1 722.3846 750 -27.6154    0(722.3846-750-(-27.6154) 
    2 774.3762 800  0(PrevMonthImbal) -25.6238(774.3762-800-0) 
    3 885.1103 900 -25.6238    ............ 
    4 120.4484 100 
    5 175.2068 150 
    6 221.1865 250 
    7 275.1496 350 
    8 320.3225 330 
    9 622.3530 650 
    10 663.0514 680 
    11 683.0443 690 
    12 694.6459 700 

如何在R中可以做到這一點

+0

我喜歡用(http://stackoverflow.com/q/14689424/5977215)爲像您這樣的計算[使用'shift'這個'data.table'解決方案。 – SymbolixAU

回答

1

我們可以使用data.table

library(data.table) 
setDT(df2)[, Balance := Demand - Supply][, Imbalance := Balance - shift(Balance)]