私はxtsが1で、0は日付上のイベントを示しています。毎週金曜日の金曜日にRループを行い、その週に1があるかどうかを確認したいと思います。私はこれを持っています:'下付き文字が範囲外です。' in period.apply
> this = xts(sample(c(0,1), replace=TRUE, size=10),
order.by = seq.Date(as.Date('1990-01-05'), by = 1, length.out=10))
> this
[,1]
1990-01-05 0
1990-01-06 1
1990-01-07 0
1990-01-08 0
1990-01-09 0
1990-01-10 0
1990-01-11 1
1990-01-12 0
1990-01-13 0
1990-01-14 0
> that = index(this)[.indexwday(this) == 5]
> that
[1] "1990-01-05" "1990-01-12"
> period.apply(this, INDEX=that, FUN=function(x) max(x))
Error in `[.xts`(x, (INDEX[y] + 1):INDEX[y + 1]) :
subscript out of bounds
ご覧のとおり、私はエラーが発生しています。どんな助け?
編集:
エラーが見つかりました。 'INDEX'は、日付ではなくベクトルまたは行番号であるはずです。これは動作します:
period.apply(this, INDEX=c(0, which(index(this) %in% that)), FUN=function(x) max(x))
しかし、私は元の問題に固執しています。シリーズの最初の出現をどうやって得るのか分からない。私はこれを試しました:
> period.apply(this, INDEX=c(0, which(index(this) %in% that)), FUN=function(x) index(x)[min(which(x==1))])
[,1]
1990-01-05 7309
1990-01-12 7310
しかし、私はこれらが何であるか分かりません。私は、インデックスには、関数に渡すために 'x'を使用して行くと推測しています。
私は何をしようとしているのですか?