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

R 记录计时器数据-如何在没有日期的情况下测量毫秒?,r,datetime,time,strptime,chron,R,Datetime,Time,Strptime,Chron,我有一张篮球比赛次数表。以下是一些示例时间值,以显示它们的存储方式:“11:44.0”,“10:03.0”,“8:35.0”,“6:19.0”,“0:49.9”,“0:03.9” (分钟-无领先0):(秒-领先0)。(十分之一秒) 它很好地响应了格式%M:%OS,但我最终得到了一个完整的日期,只包含计时器数据。这很不方便,主要是因为它看起来很糟糕(如果有任何图形或表格自动生成以包含日期),并且如果我在多天内处理它,我必须确保我的所有值都具有相同的日期,以便正确地相互减去它们 > strpt

我有一张篮球比赛次数表。以下是一些示例时间值,以显示它们的存储方式:
“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
format
)将其转换为字符串,我认为
times
类from
chron
不会处理毫秒(或十分之一秒,对于我的情况).

我们可以使用
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")

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

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

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

graph 7200十分之一秒),并执行其他转换以令人满意的时间格式显示它(阅读“7:43”比阅读“2570十分之一秒转换为四分之一”更容易)

谢谢!它在我的桌子上看起来不错,但在作图方面却不太好。我在x错误:无法将期间与持续时间进行比较:首先强制使用'as.numeric'。
我正在考虑使用strtime进行此操作,并处理提前日期的后果。