你们中的任何人都可以帮助将日期从 20150101 转换为缩写形式 Jan-2015 吗?

我尝试了以下方法。

x = 20150101
zoo::as.yearmon(x, "%b-%y")

但我收到以下错误



任何帮助将不胜感激。

最佳答案

题中的代码有两个问题:

  • 输入格式被指定为 "%b-%y" 但应该是"%y%m"
  • 我们希望在这里使用 as.yearmon.character 而不是as.yearmon.numeric 所以输入应该被转换为"character"

  • 因此,试试这个:
     library(zoo)
     ym <- as.yearmon(as.character(20150101), "%Y%m")
    

    给予:
    > ym
    [1] "Jan 2015"
    

    请注意,"yearmon" 对象在内部存储为年份 + 分数,其中分数是 0 代表 1 月,1/12 代表 2 月,...,11/12 代表 12 月。在外部,它们被呈现为缩写的月份,后跟一个空格,年份为显示。

    以上可能就足够了,但如果不能将其转换为 "%b-%y""%b-%Y" 格式的字符串,请使用 format :
    format(ym, "%b-%y")
    ## [1] "Jan-15"
    
    format(ym, "%b-%Y")
    ## [1] "Jan-2015"
    

    关于r - 将数字日期格式 (YYYYMMDD; 20150101) 转换为年月,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29168292/

    10-12 17:47