我正在处理每月数据,并有一个日期字符向量,格式如下:
Sep/2012
Aug/2012
Jul/2012
等等,回到 1981 年。我尝试过使用
as.Date(dates, "%b/%Y")
where %b
代表月份缩写,但这仅返回 NA。我究竟做错了什么?
注意:我已经找到了使用的解决方法gsub()
在每个条目前面添加“01/”,如下所示:
01/Sep/2012
01/Aug/2012
01/Jul/2012
Then as.Dates()
有效,但这似乎有点不优雅,而且无论如何也不严格准确。
您正在寻找as.yearmon()
in the zoo包裹。鉴于您的日期
dates <- c("Sep/2012","Aug/2012","Jul/2012")
我们加载包并转换为"yearmon"
class
require(zoo)
dates1 <- as.yearmon(dates, format = "%b/%Y")
dates1
这使
R> dates1
[1] "Sep 2012" "Aug 2012" "Jul 2012"
您可以强制转换为类的对象"Date"
使用as.Date()
method
R> as.Date(dates1)
[1] "2012-09-01" "2012-08-01" "2012-07-01"
这将是一种更简单的方式来获得你所做的事情gsub()
。有一个frac
控制日期部分应该在月份中多远的参数:
R> as.Date(dates1, frac = 0.5)
[1] "2012-09-15" "2012-08-16" "2012-07-16"
但这对您来说可能还不够。
如果您真的只想按原样存储日期,那么它们并不是真正的日期,但如果您乐意在zoo封装然后"yearmon"
类可以用作索引zoo
对象是一个时间序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)