これらのヘッダーの下に多くの値を持つデータ フレームがあるとします。
df <- data.frame(c("Tid", "Value"))
#Tid.format = %Y-%m-%d %H:%M
次に、時系列として処理したいので、そのデータ フレームを Zoo に渡します。
library("zoo")
df <- zoo(df$Value, df$Tid)
ここで、各測定が行われた時刻 (つまり、日付情報を破棄し、時間のみを保持する) の滑らかな散布図を作成したいと考えています。 -help/2009-March/191302.html
しかし、time() 関数はまったく時間を生成しないようです。代わりに、数列を生成するだけです。そのリンクから何をしても、平均的な日の値の散布図を取得できません。(動物園の時系列を使用せずに) 実際に機能する data.frame コードは次のようになります (つまり、時間から時間を抽出して数値に変換します)。
smoothScatter(data.frame(as.numeric(format(df$Tid,"%H")),df$Value)
もう 1 つやりたいことは、1 時間あたりの測定数の密度プロットを作成することです。問題なく通常の data.frame を使用して時間をプロットしたので、私が持っているデータは問題ありません。しかし、zoo を使用して実行しようとすると、エラーが発生するか、Google で見つけたものを試したときに間違った結果が得られます。
私はこの行を通して何かをプロットすることができました:
plot(density(as.numeric(trunc(time(df),"01:00:00"))))
しかし、それは正しくありません。1 から 217 までのシーケンスを生成しているように見えますが、日付情報を切り捨てて、時間を時間単位で丸めておきたいと思っていました。
私はこれをプロットすることができます:
plot(density(df))
これにより、値の密度プロットが生成されます。しかし、1 日の 1 時間あたりに記録された値の数に関する密度プロットが必要です。
それで、誰かがこれを整理するのを手伝ってくれたら、それは素晴らしいことです. 要するに、私がやりたいことは次のとおりです。
1) SmoothScatter (x 軸: 時刻 (0-24)、y 軸: 値)
2) plot(density(x 軸: 時刻 (0-24)))
編集:
library("zoo")
df <- data.frame(Tid=strptime(c("2011-01-14 12:00:00","2011-01-31 07:00:00","2011-02-05 09:36:00","2011-02-27 10:19:00"),"%Y-%m-%d %H:%M"),Values=c(50,52,51,52))
df <- zoo(df$Values,df$Tid)
summary(df)
df.hr <- aggregate(df, trunc(df, "hours"), mean)
summary(df.hr)
png("temp.png")
plot(df.hr)
dev.off()
このコードは、私が持っている実際の値です。「df.hr」のプロットは 1 時間ごとの平均であると予想していましたが、代わりに、まったく時間ではない奇妙な新しいインデックスが得られます...