【问题标题】:Adding seconds to hr:min timestamp in R将秒添加到 R 中的 hr:min 时间戳
【发布时间】:2015-05-18 14:30:53
【问题描述】:

我想在 R 数据帧中完成时间戳。当前时间戳缺少秒,hh:mm,但它需要是 hh:mm:ss。在这种情况下,我只需在所有时间戳中添加“:00”即可。

时间戳看起来像这样"10:25" "10:29" "11:32"

但必须是"10:25:00" "10:29:00" "11:32:00"

我尝试了以下方法,但没有添加任何内容。

gsub("(:dd)$","\\1:00",test$`TIME`)
gsub(" .*$", "\\1",test$`TIME`)
gsub("dd$", ":00",test$`TIME`)

谢谢

【问题讨论】:

  • test$`TIME 有什么原因吗?我们不能只做test$TIME吗?
  • test$TIME 没问题。我使用引号是因为我还有其他几个带空格的变量,例如 test$'CURRENT DATE'
  • 然后使用make.names 函数使它们成为有效的变量名。
  • 谢谢大卫,我不知道'make.names'函数。

标签: r string timestamp


【解决方案1】:

你可以试试

sub('^(\\d+:\\d+)$', '\\1:00', v1)
#[1] "10:25:00" "10:29:00" "11:32:00" "10:42:20" "11:22:00" "10:22:30" ""        

数据

v1 <- c('10:25', '10:29', '11:32', '10:42:20', '11:22', '10:22:30', '')

【讨论】:

    【解决方案2】:

    好的,我认为这很简单..

    time <- "14:30"
    
    # using paste0
    paste0(time, ":00")
    

    【讨论】:

    • 有时时间戳是空的。然后它看起来像:00。我只想用看起来像“hh:mm”的现有时间戳添加秒数
    • 非空字符串过滤
    • 这在检查空字符串时起作用。 akrun 的解决方案更加灵活。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 2020-12-16
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2018-03-10
    相关资源
    最近更新 更多