0

我有一份篮球比赛的时间清单。以下是一些示例时间值,以显示它们的存储方式:"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"

我想以时间格式保存它,以便于操作。似乎截断方法(如strptime's format)将其转换为字符串,我不认为timesfrom 类chron处理毫秒(或十分之一秒,就我而言)。

4

2 回答 2

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")
于 2018-08-14T04:17:51.963 回答
0

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

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

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

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

于 2018-08-14T19:04:14.847 回答