2012-04-03 2 views
2

xtsと別の時間インデックスベクトル(エンドポイント)に含まれる不規則な時系列があります。 すべてのエンドポイントについて、先行する5秒に基づいてすべてのインデックスポイントの統計を計算します。したがって、開始点はすべてのエンドポイントの5秒前でなければなりません。これらの期間は重複することがあります。不規則に間隔を置いた終点がRである一定サイズのperiod.apply

*その仕事をしている*適用ファミリから機能が見つかりません。どうやってやるの?手動でループを作成する必要がありますか?

ここで私の謙虚なイラストは、黒はxtsデータ、赤はエンドポイントです。私は5秒間隔ですべての黒い点で計算された赤い点ごとに関数の結果を得たいです。

overlapping intervals

答えて

1

あり、これを行うには、既製の機能はありませんが、それはあなた自身を書くことはかなり簡単です。

# Example data 
library(xts) 
data(sample_matrix) 
x <- as.xts(sample_matrix) 
# Example function 
# Calculate the mean of the last 5 days of each month, returning 
# an xts object indexed at the endpoint 
myFunction <- function(i, y) xts(t(colMeans(y[(i-4):i,])), index(y)[i]) 
# Use lapply to call your function at each endpoint 
# (removing first endpoint, since it equals zero) 
do.call(rbind, lapply(endpoints(x, 'months')[-1], FUN=myFunction, y=x)) 
+0

ありがとうございました!それは私の心を多次元にする時間がかかりました。私はそれなしで解決策を理解できませんでした:) – gadubishe

関連する問題