我的代码如下所示:
if(inherits(index(x),"POSIXct"))index_d=as.POSIXct(rownames(d))
else if(inherits(index(x),"Date"))index_d=as.Date(rownames(d))
else stop(paste0("x uses a date index (",attr(x,".indexCLASS"),") we are not expecting..."))
(x
是一个 XTS 对象,但我希望有一个通用的解决方案。但是,仅适用于 XTS 对象的东西对于这个特定的代码就足够了!)
即我正在寻找的是一些神奇的命令,例如:
index_d = as.same.type.as(index(x),rownames(d))
顺便说一句,我也有这个非常相似的代码:
if(inherits(index(x),"POSIXct"))rownames(d)=as.character(dates,format="%Y-%m-%d %H:%M:%S")
else rownames(d)=dates #Rely on implicit conversion from Date to character
我怀疑这是一锅不同的鱼,也很“难”;只是想我会提到它,以防 R 确实有一些神奇的方法来做到这一点。(我必须format
对 POSIXct 使用显式转换,因为隐式转换将采用“2012-06-21 00:00:00”并将其写为“2012-06-21”而不是“2012-06-21 00:00: 00")