6

xtsapply.periodを実行した後の時間として何(または動物園)が使用するかを理解しようとしています。次のことを考慮してください。

> myTs = xts(1:10, as.Date(1:10, origin = '2012-12-1'))
> apply.weekly(myTs, colSums)
           [,1]
2012-12-02    1
2012-12-09   35
2012-12-11   19

「2012-12-02」は「2012-12-02までの週の合計は1」という意味だと思います。つまり、基本的に時間は週末です。

しかし、問題はその「2012-12-11」にあります。11日は与えられた週の最後の日であると言っているので、それを時間として与えていると思います。

その日がデータセットに含まれていなくても、それが終了する日曜日を与えるように強制する方法はありますか?

4

3 に答える 3

5

これを試して:

nextsun <- function(x) 7 * ceiling(as.numeric(x-0+4) / 7) + as.Date(0-4)
aggregate(myTs, nextsun, sum)

ここで、 5(金曜日の場合)を0(日曜日の場合)に置き換えることにより、動物園のクイックリファレンスに記載されているコードnextsunから派生しました。nextfri

于 2012-12-19T10:53:28.727 に答える
4

それらは丸1週間です。最後の観測日のみを表示しています。?endpointsapply.weekly、は基本的にエンドポイントの薄いラッパーです)を参照してください。

apply.weekly
function (x, FUN, ...) 
{
    ep <- endpoints(x, "weeks")
    period.apply(x, ep, FUN, ...)
}
<environment: namespace:xts> 

エンドポイントから

エンドポイントは、onで指定された各期間の最後の観測値に対応する数値ベクトルを返します。ベクトルの先頭にゼロが追加され、最後にxの最後の観測値のインデックスが追加されます。

の引数の有効な値には、「us」(マイクロ秒)、「microseconds」、「ms」(ミリ秒)、「milliseconds」、「secs」(秒)、「seconds」、「mins」(分)、「minutes」が含まれます。 」、「時間」、「日」、「週」、「月」、「四半期」、および「年」。

2番目の質問に対する答えは「いいえ」です。そうするオプションはありません。ただし、最終日はいつでも手動で編集できます。とにかくすべてのデータをまとめて表示する場合は、害はありません。

于 2012-12-19T06:18:05.860 に答える
2

いいえ、あなたはそれがあなたに日曜日を与えることを強制することはできません。

period.applyの結果のインデックスはによって与えられるので

ep <- endpoints(myTs,'weeks') 

myTs[ep]
           [,1]
2012-12-02    2
2012-12-09    9
2012-12-10   10

したがって、最終日をシフトする必要があります。残念ながら、xtsはこのオプションを提供していません。インデックスの単一の値をシフトすることはできません。理由はわかりません(おそらくデザインの選択は一意のインデックスを取得します)

例:あなたは流れることをすることができます:

ts.weeks <- apply.weekly(myTs, colSums)
ts.weeks[length(ts.weeks)] <- last(index(myTs)) + 7-last(floor(diff(ep)))
于 2012-12-19T07:53:00.013 に答える