2015-04-02 86 views
1

我想轉換下列日期格式。我在使用lubridate包和strfttime函數中使用parse_date_time時遇到了麻煩,因爲它將整個列轉換爲相同的日期,或者因爲它一直返回day值。我不想在我的解決方案中看到任何日期。將數值轉換爲yyyymm日期爲

mydata=data.frame(dates=c(200102,200102,200111,200202),desired=c('2001-02','2001-02', '2001-11','2002-02')) 

我想在列中返回YYYY-mm格式。這樣做有困難。我一直在使用

回答

4

試試這個嘗試:

transform(mydata, desired = sub("(....)(..)", "\\1-\\2", dates)) 

這種形式是不是操縱(繪圖等)方便。您可能更願意使用zoo包中的"yearmon"類,該包內部存儲年/月爲年份+分數爲1的部分爲1,1月12日爲2月,...,11/12爲12月的分數。輸出時,默認渲染是,例如,Jan 2000

library(zoo) 
transform(mydata, ym = as.yearmon(as.character(dates), "%Y%m"))