使用 R 标准化日期格式

Standardizing the date format using R

我无法将日期格式标准化为 dd-mm-YYYY,这是我当前的代码

数据集

         date
1  23/07/2020
2 22-Jul-2020

当前输出

df$date<-as.Date(df$date)
df$date = format(df$date, "%d-%b-%Y")

         date
1 20-Jul-0022
2        <NA>

期望的输出

         date
1 23-Jul-2020
2 22-Jul-2020

你可以这样试试

library(lubridate)
df$date <- dmy(df$date)
df$date <- format(df$date, format = "%d-%b-%Y")

#         date
# 1 23-Jul-2020
# 2 22-Jul-2020

数据

 df <- read.table(text = "date
    1  23/07/2020
    2 22-Jul-2020", header = TRUE)

我已将您的示例数据集保存为名为 df 的数据框。我使用 dplyr 中的 group_by 将所有每个日期分别转换为正确的格式。

library(tidyverse)

df  %>% 
     group_by(date) %>% 
     mutate(date = as.Date(date, tryFormats = c("%d-%b-%Y", "%d/%m/%Y"))) %>% 
     mutate(date = format(date, "%d-%b-%Y"))