2

セット{0,1}からの信号を含む動物園データの月次シリーズがあるとします。

例えば

         a b c
Oct 2005 1 0 1
Nov 2005 0 1 1
Dec 2005 0 1 0
Jan 2006 1 0 0
Feb 2006 1 1 0
Mar 2006 0 0 1
Apr 2006 0 0 1
May 2006 0 1 1
Jun 2006 1 1 0
Jul 2006 0 1 1
Aug 2006 1 0 0
Sep 2006 0 1 1
Oct 2006 0 1 1
Nov 2006 1 0 0
Dec 2006 0 0 1
Jan 2007 1 1 1
Feb 2007 0 1 0
Mar 2007 1 1 0
Apr 2007 0 0 0
May 2007 1 0 0

月の間の毎日のデータに信号値を入力するための巧妙なベクトル化されたアプローチはありますか?また、ラグシフトする必要があります。したがって、行1については、2005年10月です。a、b、c = c(1,0,1)、2005年11月のすべてにそのセット{1,0,1}を入力したいと思います。次に、2005年11月= {0,1,1}になり、12月のすべてにこれらの値が入力されます...というように、n番目の月まで続きます。

生成するために月単位で開始することを好みますが、分析するために入力された日次値を持っています。優れた自動フィルタリングやピボットテーブルのようなものを考えています。

4

1 に答える 1

2

動物園のおかげで、これは実際にはかなり簡単です。まず、オブジェクトのインデックスをからに変換しyearmonますDate。次に、そのシリーズの開始から終了までの日付の日次シーケンスを生成します。最後に、欠落している値をマージして入力します。

# assuming your monthly series is called 'Z'
# create new object and convert index to Date
z <- Z
index(z) <- as.Date(index(z))

# generate daily sequence
# note that yearmon are converted to the first Date of the month,
# so I add one month and subtract one day from the last yearmon value
dailySeq <- seq(start(z), as.Date(end(Z)+1/12)-1, by="1 day")

# merge z with empty zoo object containing the new daily index
d <- merge(z, zoo(,dailySeq))
# fill in missing values using last-observation-carried-forward
d <- na.locf(d)
于 2012-10-18T10:16:55.663 に答える