[英]Convert numeric date format (YYYYMMDD; 20150101) into Year-Month
你們中的任何人都可以幫助將日期從20150101
轉換為簡寫形式Jan-2015
嗎?
我嘗試了以下方法。
x = 20150101
zoo::as.yearmon(x, "%b-%y")
但我收到以下錯誤
charToDate(x) 中的錯誤:字符串不是標准的明確格式
任何幫助將不勝感激。
題中的代碼有兩個問題:
輸入格式指定為"%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"
您可以使用 strptime 的組合將字符串轉換為日期對象和格式以格式化為您想要的格式:
date = "20150101"
format(strptime(date,format="%Y%m%d"),"%b-%Y")
使用lubridate
和zoo
包:
library(lubridate)
library(zoo)
x <- "20150101"
as.yearmon(as.Date(ymd(x)))
[1] "jan 2015"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.