【问题标题】:parsing a character date time format in R在 R 中解析字符日期时间格式
【发布时间】:2018-01-19 20:13:07
【问题描述】:

我正在尝试将列解析为 R 中的两个变量“日期”和“时间”。我已经安装了 lubridate 库。

当前 csv 文件具有以下时间戳格式:yyyyMMdd hh:mm a(例如'20170423 12:26 AM')并将列作为字符导入。

我正在尝试这个,但它不适用于我当前的变量'Tran_Date'(下面的代码不起作用):

transactions_file <- as_date('Tran_Date', "%Y%m%d %H:%M %p")

【问题讨论】:

  • 你的变量名不应该用引号引起来。此外,基本函数名称是 as.Date(),它采用 a format= 而不是 as_date(),它不采用格式字符串。 `Tran_Date

标签: r date


【解决方案1】:

我喜欢这样的基本 R 解决方案,

Tran_Date <- as.POSIXct("20170423 12:26 AM", format = "%Y%m%d %I:%M %p")
Tran_Date
#> [1] "2017-04-23 00:26:00 CEST"

transactions_file <- data.frame(
     date = format(Tran_Date,"%m/%d/%Y"),
     time = format(Tran_Date,"%H:%M")) # possibly add %p if you use %I
transactions_file
#>         date  time
#> 1 04/23/2017 00:26

lubridate,

# install.packages(c("tidyverse"), dependencies = TRUE)
library(lubridate)

Tran_Date <- ymd_hm("20170423 12:26 AM")

然后您可以回收上述内容或使用day(Tran_Date) cbind pastemonth(Tran_Date) 的组合以及与paste(hour(Tran_Date), minute(Tran_Date), sep = ":") 类似的组合,或者很可能是更智能的组合。

【讨论】:

  • @DoctorG,这个答案解决了你的问题吗?如果确实回答了您的问题,您最好将问题标记为已回答。
  • 是的,确实如此。我刚刚阅读并了解了该复选框。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-09-14
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
相关资源
最近更新 更多