2016-12-01 64 views
1

所以我已經通過堆棧交換答案,我解決不了這個as.Date不斷回港定居

我已經在有日期的字符如下

2011-12 
2012-04 
2011-10 

etc 
一個數據幀列

我想這些轉化爲我所試圖做的日期格式如下:

Tots$DatesMerge<-as.Date(Tots$DatesMerge,"%Y-%m"

,但我得到NA的背上所有的時間

我試圖做here但沒有喜悅。我真的不確定我做錯了什麼。

+0

[This](http://stackoverflow.com/a/6242980/2416535)應該工作,或者上面那個答案。 – jakub

回答

4

我會說as.Date將無法​​工作的價值觀,當月沒有一天。你可以嘗試用zoo,只要你不介意它的到來,作爲一個yearmon類:

library(zoo) 
as.yearmon(Tots$DatesMerge) 

或者,您可以指定月份的一天,一個虛擬的使用方法:

as.Date(paste0(Tots$DatesMerge, "-15")) 
+2

你只是複製評論中提到的重複帖子的答案嗎? – Sotos

+0

不,對不起,如果這樣。看完評論後,我已經看過這些鏈接,是的,它們是相似的。當有一個有效的答案時,事情就是這樣。 – rosscova

+0

對不起,我只是得到了低票,因爲我的回答恰好與評論中的鏈接相同,而有人認爲我是「作弊」? – rosscova

1

編輯:已經有一個答案,它是重複的,但我想這個解釋對於更多的讀者可能是有用的,所以我會放棄它。

說明

這來自於R,"Dates are represented as the number of days since 1970-01-01, with negative values for earlier dates"的文檔。

在R中,日期因此取決於年份,月份和日期,或者至少是一個表示1970-01-01或之後的天數(以天計)的整數。因此,由於沒有日期,R中的基本日期包不能將年份和月份的格式轉換爲日期。

解決方案

因此,你可以選擇,如果你去與base R package,提供一個將用於將數據轉了一天。

Tots$DatesMerge <- as.Date(paste0(Tots$DatesMerge,"01"),"%Y-%m-%d")