Преобразовать форматы даты - PullRequest
0 голосов
/ 26 августа 2018

У меня есть фрейм данных, в котором один из столбцов имеет даты в двух разных форматах (dmY и d / m / Y), а также содержит множество NA.Столбец относится к классу символов.Я хотел бы изменить форматы дат в один формат (Ymd), сохранив NA как есть.Можете ли вы помочь - как я могу сделать это в R?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

base r

Вы можете заменить "-" на "/" (или наоборот), а затем использовать as.Date:

 df <- data.frame(Col = c("25-05-2018", "25/05/2018"), stringsAsFactors = FALSE)
 df$Col <- gsub("-", "/", df$Col)
 as.Date(df$Col, format = "%d/%m/%Y")
0 голосов
/ 26 августа 2018

Если даты в одном и том же порядке, используйте dmy из lubridate

library(lubridate)
dmy(df1$Col)
#[1] "2018-05-25" "2018-05-25"

Если заказы также отличаются, используйте parse_date_time

parse_date_time(df2$Col, c("dmy", "mdy"))
#[1] "2018-05-25 UTC" "2018-05-25 UTC" "2018-05-25 UTC"

данные

df1 <- data.frame(Col = c("25-05-2018", "25/05/2018"), stringsAsFactors = FALSE)
df2 <- data.frame(Col = c("25-05-2018", "25/05/2018", "5/25/2018"),
      stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...