我有一组以分钟和秒为单位的 F1 圈速。秒有十分之一、一百、几千秒,我需要保持这种方式,因为我试图绘制这些数据,但 R 将其分类为一个因素。我尝试将其转换为数字(as.numeric),但这似乎不起作用。 这是一个数据样本:
DriverId Q1 Q2 Q3
1 1:05.585 1:04.772 1:04.293
20 1:04.655 1:07.354 1:04.123
如果格式不正确,ggplot
不允许我正确绘制数据图表。
我尝试使用 chron
和 POSIXlt
软件包但无济于事,因为它们似乎不支持 mm:ss.000
格式
请帮忙!
最佳答案
您可以使用strptime
,其中%OS
表示秒及其小数部分。示例:
x<-as.factor(c("1:04.293",'1:04.772','1:04.890'))
options(digits.secs=3)
x<- strptime(x, "%M:%OS")
输出:
"2018-01-13 00:01:04.293 CET" "2018-01-13 00:01:04.772 CET" "2018-01-13 00:01:04.890 CET"
仅返回分钟和秒(作为字符),例如绘图中的刻度标签:
format(x,"%M:%OS3")
[1] "01:04.293" "01:04.772" "01:04.890"
这是一个绘图示例:
plot(x,c(1,2,3),xaxt='n')
at <- axTicks(1)
axis(1, at=at, labels=format(as.POSIXct(at,origin='1970-1-1'),"%M:%OS3"), las=1)
输出:
希望这有帮助!
关于r - 将单圈时间从因子转换为 R 中带小数的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48239549/