将`“7-2014”`转换为日期格式并在R中找到最小值

converting `"7-2014"`into date format and finding minimum in R

我在向量 date

中将日期存储为 character
> head(date)
[1] "7-2014"  "1-2018"  "11-2014" "7-2014"  "1-2018"  "1-2018" 

并希望将其转换为日期并找到其最小值。我按照 here

的解释使用了 as.Date
as.Date(date, "%m-%Y")

但只得到 NA 作为结果。为什么这不起作用?

我想找到列中的最小日期。如果您知道更好的方法,请赐教:)

as.Date 需要一个月中的某一天:

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"

reprex package (v0.3.0)

于 2020-04-15 创建

您可以在向量中放入任意日期并将其转换为日期来计算min

或者你也可以使用zoos yearmon

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

数据

x <- c("7-2014" , "1-2018",  "11-2014", "7-2014",  "1-2018",  "1-2018")

我们也可以在最后追加一天后使用lubridate

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

数据

x <- c("7-2014" , "1-2018",  "11-2014", "7-2014",  "1-2018",  "1-2018")