Построение периодов смазки с использованием R

У меня есть ряд отрезков времени, выраженных в виде строк, например, 3:15, в течение 3 минут 15 секунд. Я прочитал их и преобразовал в периоды с помощью Lubridate, например,

library(lubridate)
times <- ms(c("3:15","5:13","4:21","3:14","5:50"))

Как я могу построить их в виде гистограммы с осью x в каком-то формате минут: секунд? Использование простого hist(times) дает мне числовое значение периодов (как если бы они были нанесены на график с помощью as.numeric), что не имеет никакого смысла. График hist(as.period(times)) дает тот же результат.


person Unstack    schedule 05.09.2015    source источник


Ответы (1)


После применения функции ms к times вы преобразовали его из вектора в такой объект:

> class(times)
[1] "Period"
attr(,"package")
[1] "lubridate"

Вы можете использовать times@, чтобы увидеть, какую информацию вы можете получить от этого объекта.

Возможно, вам больше подходит hist(times@minute). Кроме того, попробуйте вариант, вручную выбрав breaks, например: hist(times@minute, breaks=20)

person AntoniosK    schedule 05.09.2015
comment
Я понимаю. Так что Lubridate в этом случае, вероятно, не очень полезен, я бы лучше преобразовал в секунды или числовые доли минуты. - person Unstack; 05.09.2015
comment
Точно. Вы теряете некоторую информацию из секунд здесь. Кроме того, 3,15 по оси x не равно 3:15, так как ось x включает такие значения, как 3,70 и т. д. Я бы использовал секунды для каждого значения Min:Sec, построил график с использованием секунд и использовал Min:Sec в качестве меток на оси x. (только для визуализации), возможно, используя ggplot (?). - person AntoniosK; 05.09.2015