私はしばらくこれに苦労してきました。tsデータと関連するすべての R パッケージを扱うのは初めてです。GMT「%H%M」の「時刻」や「%Y/%m/%e」サンプリングが発生した日付など、いくつかの変数を持つ df があります。日付データを「週」(つまり、%W/%g) にビン化/集計し、その週にサンプリングが行われた平均「時刻」を計算したいと考えています。
最初に df を Zoo オブジェクトに変換してから、次のように aggregate.zoo コマンドを使用することで、数値変数 (体重など) で他の FUN を計算することができました。
#calculate the sum weight captured every week
x2c <- aggregate(OA_zoo, as.Date(cut(time(OA_zoo), "week")), sum)
ただし、数値ではなく日付形式を使用しているという事実を回避する方法がわかりません。ヒントをいただければ幸いです。また、私は明らかに、各変数を個別に実行することで、多くの方法でコーディングを行ってきました。plyr を使用して「毎週」集計することにより、df に異なる FUN (合計/平均/最大/最小) を適用する方法はありますか? それとも他のパッケージ?
編集/明確化これdput
は、私の完全なデータセットのサンプルの出力です
。2004 年から 2011 年までのデータがあります。ggplot2 を使用して確認/プロットしたいのは、一定期間 (2004 ~ 2011 年) の週単位で集計された TIME (%H%M) の平均/中央値です。現在、私のデータは週単位ではなく、日単位 (ランダム サンプル) で集計されています。
> dput(godin)
structure(list(depth = c(878, 1200, 1170, 936, 942, 964, 951,
953, 911, 969, 960, 987, 991, 997, 1024, 978, 1024, 951, 984,
931, 1006, 929, 973, 986, 935, 989, 1042, 1015, 914, 984), duration = c(0.8,
2.6, 6.5, 3.2, 4.1, 6.4, 7.2, 5.3, 7.4, 7, 7, 5.5, 7.5, 7.3,
7.5, 7, 4.2, 3, 5, 5, 9.3, 7.9, 7.3, 7.2, 7, 5.2, 8, 6, 7.5,
7), Greenland = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 40L, 28L, 0L,
0L, 34L, 7L, 28L, 0L, 0L, 0L, 27L, 0L, 0L, 0L, 44L, 59L, 0L,
0L, 0L, 0L, 0L, 0L), date2 = structure(c(12617, 12627, 12631,
12996, 12669, 13036, 12669, 13036, 12670, 13036, 12670, 13037,
12671, 13037, 12671, 13037, 12671, 13038, 12672, 13038, 12672,
13038, 12672, 13039, 12631, 12997, 12673, 13039, 12673, 13039
), class = "Date"), TIME = c("0940", "0145", "0945", "2045",
"1615", "0310", "2130", "1045", "0625", "1830", "1520", "0630",
"0035", "1330", "0930", "2215", "2010", "0645", "0155", "1205",
"0815", "1845", "2115", "0350", "1745", "0410", "0550", "1345",
"1515", "2115")), .Names = c("depth", "duration", "Greenland",
"date2", "TIME"), class = "data.frame", row.names = c("6761",
"9019", "9020", "9021", "9022", "9023", "9024", "9025", "9026",
"9027", "9028", "9029", "9030", "9031", "9032", "9033", "9034",
"9035", "9036", "9037", "9038", "9039", "9040", "9041", "9042",
"9043", "9044", "9045", "9046", "9047"))