2

異なる月に始まり、次のように表示されるいくつかの時系列の「開始」という名前の初期開始値の単一列行列 (rbind 操作の結果) があります。

starts <- matrix(rep(100,5),ncol=1)
rownames(starts) <- month.name[1:5]
starts          
          [,1]
January   100
February  100
March     100
April     100
May       100

明らかに実際には、開始番号は常に 100 とは限りません。

私の目標は、これを別の table() と組み合わせることです。これには、「開始」が毎月減少する減少量が含まれています。

mytable <- structure(c(20L, 0L, 0L, 0L, 0L, 10L, 10L, 0L, 0L, 0L, 5L, 10L, 
5L, 0L, 0L, 5L, 10L, 5L, 10L, 0L), .Dim = c(5L, 4L), .Dimnames = list(
    c("1", "2", "3", "4", "5"), c("1", "2", "3", "4")), class = "table")
mytable

    1    2   3   4
1  20   10   5    5
2   0   10  10   10
3   0    0   5    5
4   0    0   0   10
5   0    0   0    0

ここでの期間: 1、2、3、4 は月間の期間を参照するため、期間 1 は 1 月と 2 月の間で時系列値がどれだけ減少するかを示します。縦の数字 1、2、3、4、5 は時系列に対応します。

出力は、次のような新しいテーブルになります。

         January  February  March  April   May
January    100       80      70      65     60
February            100      90      80     70
March                       100      95     90
April                               100     90
May                                        100

次のようなスイープの方法で関数を使用してこれを行うことができると思いました。

result <- sweep(starts,2,mytable,"-")

ただし、明らかにスイープは、上記のような相関行列の性質を持つテーブルでは機能しません。

助けてくれてありがとう。

4

1 に答える 1