【问题标题】:How to change time format from 1730 to 17:30:00 in R?如何在 R 中将时间格式从 1730 更改为 17:30:00?
【发布时间】:2020-08-08 10:35:33
【问题描述】:

在一个数据集中,我发现时间列有 1700、1410、845、1030 等。

数据集太大。

如何在 R 中将此格式(1700、1410、845、1030)转换为 17:00:00、14:10:00、8:45:00、10:30:00 格式?

【问题讨论】:

    标签: r dataframe date time dataset


    【解决方案1】:

    另一种选择(来自@akrun 答案的数据):

     format(strptime(gsub("^(\\d{3}$)","0\\1",df1$Time),format="%H%M"),"%H:%M:%S")
    [1] "17:30:00" "14:10:00" "08:45:00" "10:30:00"
    

    【讨论】:

      【解决方案2】:

      我们可以使用subsprintfsprintf 用于位数不相同(3 位或 4 位),对于 3 位,sprintf 在前面补一个 0(%04d)以使其一致,同时在末尾附加 :00 ,然后使用sub捕获第一个数字或字符((..)),并替换为捕获组的反向引用(\\1),后跟:

      sub("^(..)", "\\1:", sprintf("%04d:00", df1$Time))
      #[1] "17:30:00" "14:10:00" "08:45:00" "10:30:00"
      

      数据

      df1 <- structure(list(Time = c(1730, 1410, 845, 1030)), class = "data.frame",
          row.names = c(NA, 
      -4L))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-30
        • 1970-01-01
        • 2019-11-08
        • 2019-10-07
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多