我用lubridate和揣摩,這將是如此容易生成每月的最後一天的序列兩年
ymd("2010-01-31")+months(0:23)
但看看一個得到什麼。這一切都搞砸了!
[1] "2010-01-31 UTC" "2010-03-03 UTC" "2010-03-31 UTC" "2010-05-01 UTC" "2010-05-31 UTC" "2010-07-01 UTC" "2010-07-31 UTC" "2010-08-31 UTC" "2010-10-01 UTC"
[10] "2010-10-31 UTC" "2010-12-01 UTC" "2010-12-31 UTC" "2011-01-31 UTC" "2011-03-03 UTC" "2011-03-31 UTC" "2011-05-01 UTC" "2011-05-31 UTC" "2011-07-01 UTC"
[19] "2011-07-31 UTC" "2011-08-31 UTC" "2011-10-01 UTC" "2011-10-31 UTC" "2011-12-01 UTC" "2011-12-31 UTC"
然後,我讀了如何lubridate迎合現象,如間隔,持續時間和週期。所以,我知道一個月實際上是由(365 * 4 + 1)/ 48 = 30.438天定義的天數。所以我試圖變得聰明,並重寫它爲
ymd("2010-01-31")+ as.period(months(0:23))
但是,只是給了一個錯誤。
Error in as.period.default(months(0:23)) : (list) object cannot be coerced to type 'double'
使用'strftime(date)'來擺脫時區。所以'strftime('2010-10-31 UTC')'會給你'2010-10-31'。 – Ramnath
你能接受你的答案以及下一個可憐的靈魂嗎? –
@SachaEpskamp:Stackoverflow將只允許我在兩天後接受我的答案。我想這很聰明。可能有更優雅的另一個解決方法。 – Farrel