簡體   English   中英

將數字日期格式 (YYYYMMDD; 20150101) 轉換為年月

[英]Convert numeric date format (YYYYMMDD; 20150101) into Year-Month

你們中的任何人都可以幫助將日期從20150101轉換為簡寫形式Jan-2015嗎?

我嘗試了以下方法。

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

但我收到以下錯誤

charToDate(x) 中的錯誤:字符串不是標准的明確格式

任何幫助將不勝感激。

題中的代碼有兩個問題:

  1. 輸入格式指定為"%b-%y"但應為"%y%m"

  2. 我們希望在這里使用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"

您可以使用 strptime 的組合將字符串轉換為日期對象和格式以格式化為您想要的格式:

date = "20150101"
format(strptime(date,format="%Y%m%d"),"%b-%Y")

使用lubridatezoo包:

library(lubridate)
library(zoo)

x <- "20150101"

as.yearmon(as.Date(ymd(x)))

[1] "jan 2015"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM