比方說,我有這些報頭下有很多值的數據幀:繪製從動物園時間序列截斷次
df <- data.frame(c("Tid", "Value"))
#Tid.format = %Y-%m-%d %H:%M
然後我把該數據幀交給動物園,因爲我要處理它作爲時間序列:
library("zoo")
df <- zoo(df$Value, df$Tid)
現在我想產生據稱應該做這樣的事情在這一天的時間每次測量是(即報廢日期信息,並只保留時間)順利散點圖:https://stat.ethz.ch/pipermail/r-help/2009-March/191302.html
但似乎time()函數根本不會產生任何時間;相反,它只是產生一個數字序列。無論我從該鏈接做什麼,我都無法在平均一天內得到價值的散點圖。實際執行工作(不使用動物園時間序列)的data.frame代碼如下所示(即從時間提取小時,將其轉換爲數字):
smoothScatter(data.frame(as.numeric(format(df$Tid,"%H")),df$Value)
另一件事我想要做的就是產生每小時有多少次測量的密度圖。我使用常規data.frame繪製了幾個小時沒有問題,所以我擁有的數據沒有問題。但是當我嘗試使用動物園時,我會遇到錯誤,或者在嘗試通過Google找到的結果時得到錯誤的結果。
我還是設法得到的東西,通過這條線畫在:
plot(density(as.numeric(trunc(time(df),"01:00:00"))))
但它是不正確的。它似乎又一次產生了一個從1到217的序列,我希望它能夠截斷任何日期信息,並保持時間四捨五入到幾個小時。
我能畫出這樣的:
plot(density(df))
它產生價值的密度圖。但是我想要一個關於每天每小時記錄多少個數值的密度圖。
所以,如果有人能幫我解決這個問題,那會很好。總之,我想要做的是:
1)smoothScatter(x軸:天(0-24時):值)
2)圖(密度(x軸,y軸:一天中的時間(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:nrow(df)'是時代。您想要的動物園對象是'動物園(df $ value,df $ Tid)'或'read.zoo(df)'。 –
啊,我正在加載數據不正確。謝謝。但我仍然得不到滿意的結果。如果我運行'df.hr < - aggregate(df,trunc(df,「01:00:00」,mean)),那麼我只能得到15個值,如'99 90 87 88 89 91 92 86 78.60000 80.20000 81.23333 82.62500 83.30000 84.51818 85.35000 86.52353 87.46316 88.52162 89.50435 90.36047 91.20000 92.10000 99.90000'這就是一天之內的小時...... – GaRyu
你需要提供一些可重現的東西。目前的形式無法真正回答。 –