我有一個模型,可以預測某些事件的持續時間,以及這些事件的持續時間的度量。然後我想計算預測和測量之間的差異,平均差異和RMSE。我能夠做到這一點,但格式是非常尷尬的,而不是我所期待的:計算和格式化時間間隔的平均值和平方
database <- data.frame(Predicted = c(strptime(c("4:00", "3:35", "3:38"), format = "%H:%M")),
Measured = c(strptime(c("3:39", "3:40", "3:53"), format = "%H:%M")))
database
> Predicted Measured
1 2016-11-28 04:00:00 2016-11-28 03:39:00
2 2016-11-28 03:35:00 2016-11-28 03:40:00
3 2016-11-28 03:38:00 2016-11-28 03:53:00
這是第一個怪事:爲什麼R表示關於我的時間和日期,即使我清楚指定了一個僅限於時間的格式(%H:%M
),並且我的數據中沒有日期開始?它變得怪異:
database$Error <- with(database, Predicted-Measured)
database$Mean_Error <- with(database, mean(Predicted-Measured))
database$RMSE <- with(database, sqrt(mean(as.numeric(Predicted-Measured)^2)))
> database
Predicted Measured Error Mean_Error RMSE
1 2016-11-28 04:00:00 2016-11-28 03:39:00 21 mins 0.3333333 15.17674
2 2016-11-28 03:35:00 2016-11-28 03:40:00 -5 mins 0.3333333 15.17674
3 2016-11-28 03:38:00 2016-11-28 03:53:00 -15 mins 0.3333333 15.17674
爲什麼可變Error
分鐘表示?對於Error
這不是一個不錯的選擇,但是對於Mean_Error
來說很難閱讀。對於RMSE
它更糟糕,但這可能是由於as.numeric
函數:如果我刪除它,R抱怨'^' not defined for "difftime" objects
。我的問題是:
- 是否可以顯示在
%H:%M
格式顯示第一列2(Predicted
和Measured
)? - 其他3列(
Error
,Mean_Error
和RMSE
)我想比較一下%M:%S
格式和一個格式,只需幾秒鐘,然後在這兩個列表中進行選擇。可能嗎?
編輯:只是爲了更清楚,我的目標是要插入的時間間隔的觀察到一個數據幀,並計算時間間隔不同的向量。然後,計算該向量的一些統計數據:均值,均方根誤差等。我知道我可以在幾秒鐘內輸入時間觀測值,但這看起來不太好:很難說13200秒是3小時40分鐘。因此,我希望能夠將時間間隔存儲在%H:%M
中,但能夠以代數方式操作它們並以我選擇的格式顯示結果。那可能嗎?
對於第一個怪事,'strptime'轉換成'POSIXlt',它會增加今天的日期它。要僅顯示小時和分鐘使用:'format(strptime(c(「4:00」,「3:35」,「3:38」),format =「%H:%M」),format =「% H:%M「)'這只是字符(即,你失去了日期 - 時間類) – aichao
@aichao,我試過'數據庫$預測< - 格式(strptime(數據庫$預測,格式=」%H:%M 「),format =」%H:%M「)',但我得到了'>數據庫$預測 [1] NA NA NA'。我猜這裏真正的問題是我不需要日期時間對象,但更多的東西像時間間隔對象......是否有可能獲得? 「 – DeltaIV