4

私はあちこちを見ましたが、この質問が以前に尋ねられた場所を見つけることができません。

このデータを適切な動物園シリーズに入れるクリーンな方法は何ですか? このバージョンは、この投稿を簡単にするためのコピー/貼り付けですが、常に次の表形式で提供されます (テキスト ファイルから)。私の read.zoo() ステートメントは年をインデックスとして読み取りますが、四半期 (Qtr1、Qtr2 など) は列名として読み取られます。列をインデックスの「四半期」部分として読み取るガベージ以外の方法を見つけようとしましたが、ずさんです (投稿するにはあまりにもずさんです)。この問題はすでに解決されていると思いますが、見つかりません。

> texinp <- "   
+ Year   Qtr1  Qtr2  Qtr3  Qtr4   
+ 1992    566   443   329   341   
+ 1993    344   212   133   112   
+ 1994    252   252   199   207"   
> z <- read.zoo(textConnection(texinp), header=TRUE)
> z  

as.yearqtr() ドキュメントから、ターゲットは次のようになります。

1992 Q1 1992 Q2 1992 Q3 1992 Q4 1993 Q1 1993 Q2 1993 Q3 1993 Q4    
    566     443     329     341     344     212     133     112      

1994 Q1 1994 Q2 1994 Q3 1994 Q4     
    252     252     199     207    
4

2 に答える 2

3

read.zooは、データに最大 1 つの time-index 列があると想定しているため、これを自分で処理する必要があります。最初に使用してそれを読んでくださいread.table

zt <- read.table( textConnection( texinp ), header = TRUE)

次に、パッケージのmelt関数を使用して「長いテーブル」に変換します。reshape

require(reshape)
zt.m <- melt( zt, id = 'Year', variable_name = 'Qtr')

> zt.m
   Year  Qtr value
1  1992 Qtr1   566
2  1993 Qtr1   344
3  1994 Qtr1   252
4  1992 Qtr2   443
5  1993 Qtr2   212
6  1994 Qtr2   252
7  1992 Qtr3   329
8  1993 Qtr3   133
9  1994 Qtr3   199
10 1992 Qtr4   341
11 1993 Qtr4   112
12 1994 Qtr4   207

最後に目的のzooオブジェクトを作成します。

z <- with( zt.m, zoo( value, as.yearqtr(paste(Year, Qtr), format = '%Y Qtr%q')))

> z
1992 Q1 1992 Q2 1992 Q3 1992 Q4 1993 Q1 1993 Q2 1993 Q3 1993 Q4 1994 Q1 1994 Q2 
    566     443     329     341     344     212     133     112     252     252 
1994 Q3 1994 Q4 
    199     207 
于 2011-01-17T04:02:00.007 に答える
3

を使用してデータを読み取り、時間インデックスを持つオブジェクトにread.zoo変換します。zooregyearqtr

texinp <- "Year   Qtr1  Qtr2  Qtr3  Qtr4   
1992    566   443   329   341   
1993    344   212   133   112   
1994    252   252   199   207"

library(zoo)

z <- read.zoo(text = texinp, header=TRUE)
zz <- zooreg(c(t(z)), start = yearqtr(start(z)), freq = 4)

結果は次のようになります。

> zz

1992 Q1 1992 Q2 1992 Q3 1992 Q4 1993 Q1 1993 Q2 1993 Q3 1993 Q4 1994 Q1 1994 Q2 1994 Q3 1994 Q4 
    566     443     329     341     344     212     133     112     252     252     199     207 
于 2011-01-17T14:08:19.703 に答える