[R]出納帳の残高をまとめて簡単に計算する
例えばデータフレームとして入金と出金の情報だけがあり、これらから残高を簡単に計算してデータフレームに列として追加してみる。
データフレームdtfに以下のような情報がある状態で、残高を簡単に計算して列に追加してみる。累積の和を計算するには、cumsum関数を使えばよい。
> dtf
年月日 内容 入 出
1 2024-07-25 入金 100000 0
2 2024-08-02 電気 0 4000
3 2024-08-04 ガス 0 3000
4 2024-08-04 水道 0 2000
5 2024-08-25 入金 120000 0
6 2024-09-03 電気 0 5000
7 2024-09-03 ガス 0 4000
> 残高 <- dtf$入 - dtf$出
> 残高 <- cumsum(残高)
> dtf1 <- cbind(dtf, 残 = 残高)
> dtf1
年月日 内容 入 出 残
1 2024-07-25 入金 100000 0 100000
2 2024-08-02 電気 0 4000 96000
3 2024-08-04 ガス 0 3000 93000
4 2024-08-04 水道 0 2000 91000
5 2024-08-25 入金 120000 0 211000
6 2024-09-03 電気 0 5000 206000
7 2024-09-03 ガス 0 4000 202000
上の例では、残高を最初は0円ということで計算したが、これを例えば元々20万円あったとして残高を求める場合は、以下のようにすればよい。
> dtf2 <- cbind(dtf, 残 = 残高 + 200000)
> dtf2
年月日 内容 入 出 残
1 2024-07-25 入金 100000 0 300000
2 2024-08-02 電気 0 4000 296000
3 2024-08-04 ガス 0 3000 293000
4 2024-08-04 水道 0 2000 291000
5 2024-08-25 入金 120000 0 411000
6 2024-09-03 電気 0 5000 406000
7 2024-09-03 ガス 0 4000 402000