记录计时器数据 - 如何在没有日期的情况下测量毫秒数?

Recording timer data - how to measure milliseconds without the date?

我有一个篮球比赛的时间列表。以下是一些示例时间值,以显示它们的存储方式:"11:44.0""10:03.0""8:35.0""6:19.0""0:49.9""0:03.9"

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

它对格式 %M:%OS 的响应很好,但我最终得到了一个完整的日期来配合计时器数据。这很不方便,主要是因为它看起来很糟糕(如果有任何图表或表格自动生成以包含日期),并且如果我要处理它好几天,我将必须确保我的所有值都具有相同的日期才能将它们适当地相互减去。

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

我想以时间格式保存它,以便于操作。似乎截断方法(如 strptimeformat)将其转换为字符串,我不认为 chron 中的 times class处理毫秒(或十分之一秒,对于我的情况)。

我们可以使用 lubridate 中的 ms 函数,这将使以后的操作变得容易。

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")

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

我会保留它的当前字符格式,并在需要时调用 strptime。它看起来像:

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

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