【问题标题】:date format within dataset column in RR中数据集列中的日期格式
【发布时间】:2020-02-13 02:28:23
【问题描述】:

我有数据集 df,其中有一列标记为日期。我想更改此日期列中所有数据的格式。

  date

  29/11/2019 11:28:04 AM
  29/11/2019 11:28:05 AM

我希望该列看起来像这样:

  date

  11/29/2019 11:28:04 AM
  11/29/2019 11:28:05 AM

这是输出:

structure(list(Date = structure(1:2, .Label = c("29/11/2019      11:28:04 AM", 
"29/11/2019 11:28:05 AM"), class = "factor")), class =    "data.frame", row.names = c(NA, 
 -2L))

这是我尝试过的:

 newdate<- format(df$date("%m/%d/%Y" %H%m%s %d))

我意识到我的语法错误,我正在研究这个。

【问题讨论】:

    标签: r dplyr lubridate stringr


    【解决方案1】:

    在 base R 中,我们可以使用as.POSIXct 转换为日期时间,然后使用format 获取所需格式的数据。

    format(as.POSIXct(df$Date, format = "%d/%m/%Y %I:%M:%S %p"), "%m/%d/%Y %I:%M:%S %p")
    #[1] "11/29/2019 11:28:04 AM" "11/29/2019 11:28:05 AM"
    

    【讨论】:

      【解决方案2】:

      我们可以只使用dmy_hms 转换为Datetime 然后用format 包装

      library(lubridate)
      format(dmy_hms(df$Date), "%m/%d/%Y %I:%M:%S %p") 
      #[1] "11/29/2019 11:28:04 AM" "11/29/2019 11:28:05 AM"
      

      base R中,我们可以使用strptimestrftime

      strftime(strptime(df$Date, format = "%d/%m/%Y %T"),  "%m/%d/%Y %T")
      #[1] "11/29/2019 11:28:04 AM" "11/29/2019 11:28:05 AM"
      

      【讨论】:

      • 嗨@Akrun,所有数据都已正确转换,但是其他列不存在。我可以保留数据集中的所有列并进行转换吗?
      • @TanishaHudson。只需更新df$Date &lt;- format(dmy_hms..
      • @TanishaHudson 你的意思是有多个列可以转换为日期时间还是所有列
      • No @akrun 我只有一个日期列,但其余列是主题、id、项目名称等
      • @TanishaHudson 是,但包括 dmy_hms(df$Date)
      猜你喜欢
      • 2014-01-20
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 2021-09-19
      相关资源
      最近更新 更多