我得到一個結果,我不R.爲什麼使用R中的strptime解析「%Y-%m」給出NA結果,但是「%Y-%m-%d」是可用的?
明白如果我使用strptime
用了一年的一天格式化%Y-%M(如「2009-12」),我得到一個NA的結果。但是如果我添加一天,比如「2009-12-01」,並相應地更改格式字符串,我確實會得到結果。例如:
> strptime("2009-12",format="%Y-%m")
[1] NA
> strptime("2009-12-03",format="%Y-%m-%d")
[1] "2009-12-03"
這是爲什麼?
更新:我很好奇就是爲什麼strptime不分析了一年一個月,原因似乎不可思議,它不會做這樣的事情是因爲它確實一年解析只是,或一年,和一個天:
> strptime("2009",format="%Y") # year only. Works. Uses current month and day as defaults.
[1] "2009-12-02"
> strptime("2009-03",format="%Y-%d") # year and day. Works. Uses current month as default.
[1] "2009-12-03"
> strptime("2009-03",format="%Y-%m") # year and month. Doesn't work. ?
[1] NA
更新來解釋爲什麼這是不是重複 可能重複被問這個問題在幾年之後,它關注的是一個單獨的API在R
:asDate
功能。這個問題是關於strptime
函數的一個怪癖,那個函數截取R
3.1.3仍然適用。
因爲日期有幾天?你期望它輸出什麼? – hadley 2009-12-01 19:27:52
你想成爲今年的一天嗎?如果是這樣,請嘗試「%j」。 – 2009-12-01 19:38:29
我曾期待它將當前日期作爲默認值,如果您執行strptime(「2009」,format =「%Y」),它將執行此操作。這導致「2009-12-01」。 – bantic 2009-12-01 19:44:09