【问题标题】:Convert character to date vector (!bY) in R [duplicate]在R中将字符转换为日期向量(!bY)
【发布时间】:2017-04-04 03:07:02
【问题描述】:

我正在尝试将日期的字符向量(格式:即“Jan.1990”)转换为日期向量(保持类似的格式:即“Jan 1990”或“Jan.1990”)。

month_year <- ("Jan.1990", "Feb.1990", "Mar.1990", "Jan.1991", "Feb.1991", Mar. 1991")

我曾尝试将 as.Date 和各种命令与 lubridate 包一起使用,但我最终会得到不正确的格式或 NA。

我尝试使用 as.Date:

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

这导致了 NA。

我试过 lubridate::parse_date_time2

parse_date_time2(tidy_labor$month_year, c("Jan.1990"), exact = TRUE, orders = "bY")

但是格式出来了:

unknown timezone 'Jan.1990'unknown timezone 'Jan.1990'   [1] "1990-01-01 GMT" "1990-01-01 GMT" "1990-01-01 GMT" "1990-01-01 GMT" "1990-02-01 GMT" "1990-02-01 GMT" "1990-02-01 GMT"

任何帮助将不胜感激。

【问题讨论】:

  • 一个月和一年不是“日期”,因为您需要一天。但是有yearmon 类型...

标签: r date lubridate


【解决方案1】:

这个问题经常出现,简短的回答是日期需要一天。

你可以使用zoo::as.yearmon:

library(zoo)
as.yearmon("Jan.1990", "%b.%Y")

或者您可以假设这一天始终是每月的第一天,将其连接到您的值并转换为 Date 类型。

【讨论】:

  • 如果它出现很多,我们应该投票关闭它作为重复。
  • 是的,它的小变种太多了,我懒得去寻找最好的副本了 :) 所以你能做到这一点很好。
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 2022-06-30
  • 2018-09-21
  • 1970-01-01
  • 2021-03-14
相关资源
最近更新 更多