我有一個data.frame與日期時間對象,從csv文件讀入,並從lubridate包轉變成日期時間對象與dmy_hm()
。我想用時間分佈打印一個直方圖,與日期無關。下面是一個例子,它已經看起來不錯:r:如何在格式中打印日期時間的直方圖13:00在ggvis
library(dplyr)
library(ggvis)
library(lubridate)
# Create Example
GESPEICHERT <- c(rep("01/05/2016 15:26",times=10),
rep("13/05/2016 00:17",times=5),
rep("01/08/2016 12:05",times=10),
rep("17/04/1983 23:39",times=5),
rep("06/07/2015 09:36",times=10))
INFO <- c(rep("Bla",times=30),rep("Bla Bla",times=10))
df_time <- cbind.data.frame(GESPEICHERT,INFO,stringsAsFactors=FALSE)
df_time %>%
mutate(GESPEICHERT = dmy_hm(GESPEICHERT)) -> df_time
# Trying to reduce datetime Object to time
df_time %>%
mutate(UHRZ_NUM = hour(GESPEICHERT) * 60 + minute(GESPEICHERT)) %>% # Time in Minute Numbers, not necessary
mutate(GESP_UHRZEIT = format(GESPEICHERT,format="%H:%M")) %>% # http://stackoverflow.com/questions/9839343/extracting-time-from-posixct
mutate(GESP_UHRZEIT = as.POSIXct(GESP_UHRZEIT,format="%H:%M")) -> df_time
# Plot
df_time %>%
ggvis(x=~GESP_UHRZEIT) %>%
layer_histograms() %>%
scale_datetime("x", nice = "minute",label="daytime")
我這裏有兩個問題,我的x軸:
我想在x軸上顯示時間以例如15:00不是03PM
在雙方它顯示今天的日期和第二天的日期,因爲在我的代碼我刪除日期
mutate(GESP_UHRZEIT = format(GESPEICHERT,format="%H:%M"))
所以它需要今天的日期作爲日期。 我該如何擺脫? (我只能創建時間對象?我可以將其轉換爲數字,但仍然顯示它的時間?)
如果有人可以給我一些提示,這將是大加讚賞。替代軟件包,改變數據結構,每個想法都是值得歡迎的。
附加問題: 如果有人知道如何使binwidth互動(在這種情況下!),請告訴我。這是沒有必要的,但對我來說是一個很好的功能。我在有數字的情況下做過,但是使用日期時間對象不成功。