记录计时器数据-如何测量不带日期的毫秒数?

时间:2018-08-14 03:57:31

标签: r datetime time strptime chron

我有篮球比赛的时间清单。以下是一些示例时间值,用于显示它们的存储方式:"11:44.0""10:03.0""8:35.0""6:19.0""0:49.9""0:03.9" < / p>

(分钟-前导0):(秒-前导0)。(十分之一秒)

它对%M:%OS格式的响应很好,但是最后我得到了一个完整的日期,只剩下定时器数据。这很不方便,主要是因为它看起来很糟(如果有任何图形或表格自动生成以包含日期),并且如果我在多天内使用它,则必须确保所有值都具有相同的日期,以便彼此适当减去。

> strptime("0:49.9", format = "%M:%OS")
[1] "2018-08-13 00:00:49.9 EDT"

我想将其保留为时间格式,以便于操作。似乎截断方法(例如strptime的{​​{1}})将其转换为字符串,而且我认为format中的times类不能处理毫秒(或就我而言,十分之一秒)。

2 个答案:

答案 0 :(得分:1)

我们可以使用ms中的lubridate函数,以便以后进行操作。

library(lubridate)
ms(x)
#[1] "11M 44S" "10M 3S"  "8M 35S"  "6M 19S"  "49.9S"   "3.9S" 

所以让我们说稍后您想向所有这些添加2分钟,您可以这样做

ms(x) + minutes(2) 
#[1] "13M 44S"  "12M 3S"   "10M 35S"  "8M 19S"   "2M 49.9S" "2M 3.9S" 

数据

x <- c("11:44.0", "10:03.0", "8:35.0", "6:19.0", "0:49.9", "0:03.9")

答案 1 :(得分:0)

在阅读了有关此问题的不同主题之后,我得出的结论是,没有日期就没有好的方法来表示日期时间。在某种程度上,所有日期时间格式至少在基础级别上都跟踪日期,即使未显示也是如此。任何能够真正截断它的方法(我能找到)最终都会将值转换回字符串。

我将其保留为当前字符格式,并在需要时在其上调用strptime。看起来像这样:

graph <- ggplot(data, strptime(times, format = "%M:%OS"), scores) + geomline()

ggplot足以自动识别它们都是相同的日期,因此它仅显示时间。将其转换为数字可能会起作用,但随后我需要以十分之一秒(因此12:00.00-> 7200十分之一秒)来度量它,并执行其他转换以以可口的时间格式显示它(比“ 2570十分之一秒变成四分之一”更容易阅读“ 7:43”)