преобразование `" 7-2014 "` в формат даты и поиск минимума в R - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть дата, хранящаяся как character в векторе date

> head(date)
[1] "7-2014"  "1-2018"  "11-2014" "7-2014"  "1-2018"  "1-2018" 

, и я хочу преобразовать ее в дату и найти ее минимум. Я использовал as.Date как объяснено здесь

as.Date(date, "%m-%Y")

, но в результате получил только NA. Почему это не работает?

Я хочу найти минимальную дату в столбце. Если вы знаете лучший подход, просветите меня:)

Ответы [ 3 ]

0 голосов
/ 15 апреля 2020

Вы можете поместить произвольную дату в вектор и преобразовать ее в дату для вычисления min.

Или вы также можете использовать zoo s yearmon

min(zoo::as.yearmon(x, "%m-%Y"))
#[1] "Jul 2014"

data

x <- c("7-2014" , "1-2018",  "11-2014", "7-2014",  "1-2018",  "1-2018")
0 голосов
/ 15 апреля 2020

Мы также можем использовать lubridate после добавления дня в конце

library(lubridate)
min(myd(paste0(x, '-1')))

data

x <- c("7-2014" , "1-2018",  "11-2014", "7-2014",  "1-2018",  "1-2018")
0 голосов
/ 15 апреля 2020

as.Дата требует день месяца:

date <- c("7-2014",  "1-2018",  "11-2014", "7-2014",  "1-2018",  "1-2018")
as.Date(paste0("1-", date), "%d-%m-%Y")
#> [1] "2014-07-01" "2018-01-01" "2014-11-01" "2014-07-01" "2018-01-01"
#> [6] "2018-01-01"

Создано в 2020-04-15 пакетом Представить (v0.3.0)

...