2017-11-18 12 views
-1
for(t in 1921:2017) { 
    nam <- paste("", t, sep = "") 
    assign(nam, window(aCPI_gr, start=c(t,1), end=c(t,12))) 
} 
aCPI_gr_y <- cbind(`1921`: `2017`) #doesn't work 

このループは、毎年毎月のCPIデータを含むベクトルを生成しています。今私はcbindでデータフレームにそれらのすべてをパックしたいと思いますが、私はもちろん、cbind関数で手作業で毎年ベクトルを入力するのを怠っています。手作業で毎年入力することを避ける簡単な方法はありますか?年ベクトルのcbind関数

答えて

0

1)行列あなたは、以下の試験シリーズtserとして97年に及ぶ毎月一次元tsシリーズをお持ちの場合のようなもの、これは1年で12×97のマトリックスに変換します列ごとに。名前が必要ない場合は、dimnames引数を省略できます。

tser <- ts(seq_len(12 * 97), start = 1921, freq = 12) # test data 
m <- matrix(tser, 12, dimnames = list(month = 1:12, year = 1921:2017)) 

2)tapply代替です:

tapply(tser, list(month = cycle(tser), year = as.integer(time(tser))), c) 
+0

すごいです!非常にエレガントな..ありがとう! – yaennu

関連する問題