2017-02-21 7 views
0

У меня есть data.frame с только одним столбцом в R. Я получаю его с SQL-запросом из базы данных. В этой базе данных этот столбец имеет TIMESTAMP как тип данных. В R data.frame имеет тип данных «двойной»Гистограмма TIMESTAMP

typeof(MyTable$TimeLogs) 
[1] "double" 

Данные выглядит следующим образом (с более чем 800 строк):

2016-07-19 11:24:53 
2016-07-19 11:24:58 
2016-07-19 11:25:03 
2016-07-19 11:25:09 
... 
2016-07-19 19:16:05 
2016-07-19 19:16:35 
2016-07-19 19:17:05 
2016-07-19 19:17:35 
2016-07-19 19:18:06 

Я хочу гистограмма, которая показывает, как часто была сделана запись между определенный «разрыв». Мое заявление в R является:

hist(MyTable$TimeLogs, breaks = "hours", 
    col="red", main = "Histogramm of 2016-07-19", 
    xlab = "Timestamp", ylab = "Frequency") 

, чтобы я мог видеть, сколько Timelogs были сделаны между 11:00:00 и 12:00:00 и так далее ... (или, возможно, в течение 30 мин перерывами). Моя проблема теперь в том, что гистограмма выглядит следующим образом:

Histogram

, как показано на рисунке, масштаб по оси у довольно запутанный. Он должен идти от 2 до 50 (а не от 0,00000 до 0,00005). Я предполагаю, что это имеет какое-то отношение к типу time/double-datatype TimeLogs. Любые идеи о том, как правильно масштабировать шкалу или преобразовывать данные в нужный формат и по-прежнему иметь значимую ось Y?

ответ

1

Просто добавьте параметр freq = TRUE к вашему вызову hist.

MyTable <- data.frame(TimeLogs=Sys.time()+round(rnorm(1000,5000,2500))) 

hist(MyTable$TimeLogs, breaks = "hours", 
    col="red", main = "Histogramm of 2016-07-19", 
    xlab = "Timestamp", ylab = "Frequency",freq=TRUE) 
Смежные вопросы