【问题标题】:datetime splitting a frame in rstudio日期时间在 rstudio 中分割一帧
【发布时间】:2020-04-17 10:57:15
【问题描述】:
Data_Assignment$timestamp
[1] "[29:23:53:25]" "[29:23:53:36]" "[29:23:53:53]" "[29:23:54:15]"
[5] "[29:23:54:16]" "[29:23:54:18]" "[29:23:54:19]" "[29:23:54:19]"

这是我已经尝试使用 for 循环添加 1995-08 的数据帧示例,并通过 : 拆分数据,但在准备格式时我有点卡在最后,并且 for 循环省略了很多行

您将看到诸如“[29:23:53:25]”之类的条目,其中 29 日指的是 1995 年 8 月的这一天,其余数据指的是一天中的 23 日: 53:25(以小时、分钟和秒为单位)。将时间转换为年、月、日、时、分、秒格式,使其读作“1995-08-29 23:52:25”。

【问题讨论】:

    标签: r date datetime


    【解决方案1】:

    我认为您不需要 for 循环,并且根据您的需要有不同的选择。

    一种选择是使用stringrlubridate。前一个包有str_extract_all 从你的字符串中提取所有数字。如果您想使用特定的正则表达式模式,可以考虑其他替代方法。

    如果您愿意,可以使用lubridate 来构建您的日期时间字符串。您可以paste在您选择的年、月和其余的值(日期、小时、分钟、秒)。

    library(stringr)
    library(lubridate)
    
    nums <- apply(str_extract_all(vec, "\\d+", simplify = TRUE), 2, as.numeric)
    
    ymd_hms(paste0("1995-08-", nums[,1], " ", nums[,2], ":", nums[,3], ":", nums[,4]))
    

    输出

    [1] "1995-08-29 23:53:25 UTC" "1995-08-29 23:53:36 UTC" "1995-08-29 23:53:53 UTC"
    [4] "1995-08-29 23:54:15 UTC" "1995-08-29 23:54:16 UTC" "1995-08-29 23:54:18 UTC"
    [7] "1995-08-29 23:54:19 UTC" "1995-08-29 23:54:19 UTC"
    

    数据

    vec <- c("[29:23:53:25]", "[29:23:53:36]", "[29:23:53:53]", "[29:23:54:15]", 
    "[29:23:54:16]", "[29:23:54:18]", "[29:23:54:19]", "[29:23:54:19]")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多