2017-01-02 138 views
-1

我想從年份和月份格式中的給定日期中扣除月份。如何從年份和月份中扣除月份

global_date = "2017-01" 

我與zoo庫轉換,如下所示:

as.yearmon(global_date) - 0.1 

,但它給了我2016年11月,我希望它爲「201612」

我該怎麼辦呢R中?

+3

已經有答案但我想指出,答案可能已在文檔中找到。請參閱'?as.yearmon':_「yearmon」類用於表示每月數據。在內部它保存的數據爲年份加上一月份的0,二月份的1/12,2月份的3月份等等[...] _這表明減去'1/12'而不是'0.1'去到前一個月。 – Uwe

回答

6

我們要減去一個月內,我們應該減去1/12這是0.083而不是0.1

library(zoo) 
as.yearmon(global_date) - (1/12) 
#[1] "Dec 2016" 

如果我們需要在提到格式

format(as.yearmon(global_date) - (1/12), "%Y%m") 
#[1] "201612" 
1

輸出僅使用base R,只有使OP代碼的最小變更

format(as.Date(paste0(global_date, "-01")) - 0.1*10, "%Y%m") 
#[1] "201612" 

注意:沒有使用外部軟件包

+1

我仍然有這個答案@akrun。 :) –

+2

爲什麼不只是減1呢? – alistaire

+0

@alistaire只是爲了讓它與OP的帖子保持一致 – akrun