Изменить столбец с разными форматами на даты - PullRequest
0 голосов
/ 11 декабря 2019

Хотелось бы изменить столбец моего data.frame на формат даты в R.

Проблема в том, что формат столбца не согласован.

Большинство строк в формате "%Y-%m-%d" и я могу изменить их легко с функцией * * 1006. Немного строк в формате "%Y/%d/%m" и не могут изменить их с помощью функции as.Date(), но вместо этого я получаю NA.

    input <- c("2019-01-22", "2019-04-17", "2019/27/05", "2019/13/05", "2019/15/06", "2019-07-30")

    Input:           Output:

    Dates            Dates

    2019-01-22       2019-01-22
    2019-04-17       2019-04-17
    2019/27/05       2019-27-05
    2019/13/05       2019-13-05
    2019/15/06       2019-15-06
    2019-07-30       2019-07-30

Ответы [ 3 ]

1 голос
/ 11 декабря 2019

В вашем случае, когда у вас есть "% Y-% m-% d" и "% Y /% d /% m", вы можете использовать as.Date, включая формат, который он имеет. Так, например:

input <- c("2019-10-11", "2019/27/10", "2014-12-10")

Если вы используете:

input2 <- ifelse(grepl("/",input), format(as.Date(input,"%Y/%d/%m"),"%Y-%m-%d"), input)

, то:

> input2
[1] "2019-10-11" "2019-10-27" "2014-12-10"
0 голосов
/ 11 декабря 2019

Мы можем использовать anydate из anytime

library(anytime)
anydate(input)
#[1] "2019-10-11" "2019-10-12" "2014-10-13"

Или используя lubridate

library(lubridate)
ymd(input)

data

input <- c("2019-10-11", "2019/10/12", "2014-10-13")
0 голосов
/ 11 декабря 2019

Если у вас есть только эти два формата вы можете заменить все / для -:

Пример:

input <- c("2019-10-11", "2019/10/12", "2014-10-13")
as.Date(gsub("/", "-", input), format = "%Y-%m-%d")
# [1] "2019-10-11" "2019-10-12" "2014-10-13"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...