【问题标题】:as.Date returning NA while converting it from characteras.Date 从字符转换时返回 NA
【发布时间】:2017-03-22 06:21:41
【问题描述】:

我正在将以下格式从字符转换为日期

  January 2016

我想把它转换成以下格式

   201601

我正在使用以下代码

    df$date <- as.Date(df$date,"%B %Y")

但它返回给我 NA 值。我什至将语言环境设置如下

    lct<- Sys.getlocale("LC_TIME")
    Sys.setlocale("LC_TIME",lct)

但它给了我 NA 值。如何解决它

【问题讨论】:

标签: r


【解决方案1】:

我们可以通过 as.yearmonformat 轻松做到这一点

library(zoo)
format(as.yearmon(str1), "%Y%m")
#[1] "201601"

如果我们走as.Date路线,那么“日期”也需要一天,所以,paste一天,然后在转换为“日期”后使用format

format(as.Date(paste(str1, '01'), "%B %Y %d") , "%Y%m")

数据

str1 <- "January 2016"

【讨论】:

  • 如何查找上述日期格式与当前日期的差异,例如 201601 和 201510 应该以天为单位
  • @Neil 如果你真的想要与众不同,那么最好是Dateyearmon,即as.yearmon(str1) - as.yearmon("201601", "%Y%m") #[1] 0
猜你喜欢
  • 1970-01-01
  • 2021-09-07
  • 2021-11-21
  • 2015-07-04
  • 2021-05-03
  • 2017-04-15
  • 2016-11-16
相关资源
最近更新 更多