!月次試算表を作る 月次試算表は仕訳の月別合計のみならず、前月末の勘定残高を繰り越したものを加え、翌月に渡してやる必要がある。 すなわち、 当月末試算表 = 前月末試査表 + 当月仕訳合計 という関係が成立する。 仕訳データからこれを生成する場合、毎月の試算表を算定するには、3つの方法がある。 いずれも、仕訳を月単位で累積したもの(月次合計)を用意し、行に科目、列に月を取る。 ,科目,前期末,4月,5月,6月,……,3月 ,現金,xxx,xxx,xxx,xxx,・・・・・・,xxx ,預金,xxx,xxx,xxx,xxx,・・・・・・,xxx ,・・・,xxx,xxx,xxx,xxx,・・・・・・,xxx ,収益,xxx,xxx,xxx,xxx,・・・・・・,xxx 以上を'''tb'''と置くと、 * 方法1 月次合計積し、その累積和を求める方法 * 方法2 月次の累積仕訳を行列化して右上三角行列を右からかける * 方法3 forループを回す !方法1 tb = data.matrix(tb) apply(tb[, c(-1,-2)] , 1, cumsum) %>% t() data.matrix()は行列を作る。as.matrix()を使うと、数字が文字列になってしまう。 c(-1, -2)は行列のうち、最初の2列は文字列なので除外する。 1は行を表し、2は列を表す。すなわちcumsum()関数を1単位に適用するには1を使う。 以上の計算結果は、縦に並べられるため、元の横に戻すために転置するのが、t() !方法2 tb[, c(-1, -2)] %*% upper.tri(matrix(1,13,13), diag = T) tb[]の部分は方法1と同様。 '''%*%'''は行列の積を求める演算。 upper.tri()は、右上三角行列を、13×13で生成する。12ではなく13であるのは期首の数字が毎月の数字に加わるため。 !方法3 面倒なだけでRを使うメリットがない。