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
类fromchron
不会处理毫秒(或十分之一秒,对于我的情况).我们可以使用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进行此操作,并处理提前日期的后果。