代码之家  ›  专栏  ›  技术社区  ›  mnd

如何将r上的数字(如14.5)格式化为小时(如14:30)?[副本]

  •  0
  • mnd  · 技术社区  · 7 年前

    我有一个名为“hh”的数字列,其中小时的格式如下:

    hh
    14.5
    15.0
    15.5
    

    我想将格式设置为小时,例如:

    14:30
    15:00
    15:30
    

    我试过了

    format(as.POSIXct(Sys.Date()+df$HH), "%H:%M", tz="UTC", origin="UTC") 
    

    而且没有起作用。 有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Andrew Brēza    7 年前

    因为您询问如何格式化数字,所以这里有一个解决方案,将结果输出为具有所需格式的字符串。

    library(stringr)
    paste(hh %/% 1, str_pad(60 * (hh - (hh %/% 1)), width = 2, pad = 0), sep = ":")