【问题标题】:Converting a count down timer to a usable format将倒数计时器转换为可用格式
【发布时间】:2019-05-08 11:43:45
【问题描述】:

我正在尝试将倒数计时器从字符转换为可用格式,理想情况下是时间格式,但数字可能有效。

我尝试使用 as.POSIXct 以及 Chron 包进行转换

这是 DF 的输出

structure(list(Time = c("(-01:30)", "(-01:15)", "(-01:00)", "(-00:45)", 
"(-00:30)", "(-00:15)", "0", "+00:13", "+00:15", "+00:30", "+00:45"
)), row.names = c(NA, -11L), class = c("tbl_df", "tbl", "data.frame"
))

我已经使用

从时间列中删除了括号
sd$Time = (gsub("[(),//]", "", sd$Time))

然后尝试使用以下转换

sd$Time <-  as.POSIXct(sd$Time, format="%M:%S")

【问题讨论】:

    标签: r time rstudio


    【解决方案1】:

    一个选项是strptime

    strptime(sub("^0$", "00:00", gsub("[-+()]", "", sd$Time)), format = "%M:%S")
    

    【讨论】:

    • 感谢您的回复,不幸的是,这会删除零之后的所有值,因此一旦计时器开始计数。它还将分钟转换为小时,将秒转换为分钟。我希望能够在 x 轴上绘制带有时间的图形,如果我们将其转换为数字可以做到这一点吗?再次感谢。
    • @TDaw 在您的示例中,我在) 之后没有找到任何其他值
    • 我已将问题更改为仅包含 sd$Time 列的 dput
    • @TDaw 是那种格式MM::SS 还是HH::MM 因为它对我来说是工作strptime(sub("^0$", "00:00", gsub("[-+()]", "", sd$Time)), format = "%H:%M") [1] "2019-05-08 01:30:00 EDT" "2019-05-08 01:15:00 EDT" "2019-05-08 01:00:00 EDT" "2019-05-08 00:45:00 EDT" [5] "2019-05-08 00:30:00 EDT" "2019-05-08 00:15:00 EDT" "2019-05-08 00:00:00 EDT" "2019-05-08 00:13:00 EDT" [9] "2019-05-08 00:15:00 EDT" "2019-05-08 00:30:00 EDT" "2019-05-08 00:45:00 EDT"
    • @TDaw 在这种情况下是strptime(sub("^0$", "00:00", gsub("[-+()]", "", sd$Time)), format = "%M:%S")
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多