2013-01-20 58 views
3

我使用R的很少的部分是性能敏感的,但对于一个缓慢的任务,我已经从使用数据帧切换到xts对象,并且这个对象的加速度大概是10倍。有没有办法让merge.xts保持名称不变?

但是,我碰到了一个怪诞的merge.xts,这是它似乎坚持在合并xts对象时检查列名称。该文件指出,该功能延伸merge.zoomerge.zoo确实服从check.names = FALSE,但通过merge.xts以下的代码不会。

问:是否可以强制merge.xts使我的列名保持不变?而不是,我可以在简单的xts对象上互换地使用merge.zoo(它可以工作)吗?

library(xts) 
set.seed(54321) 
xts1 <- xts(runif(5, 100, 200), order.by = seq(as.Date('2013-01-14'), 
           as.Date('2013-01-18'), by = "day")) 
xts2 <- xts(runif(5, 1000, 2000), order.by = seq(as.Date('2013-01-14'), 
            as.Date('2013-01-18'), by = "day")) 
names(xts1) <- 'my value 1' 
names(xts2) <- 'my value 2' 
xts1 
xts2 
xts.new <- merge.xts(xts1, xts2) 
xts.new # names have been changed: unwanted behaviour 
xts.new <- merge.xts(xts1, xts2, check.names = FALSE) 
xts.new # argument is ignored, instead column called 'check.names' is added 
zoo.new <- merge.zoo(xts1, xts2, check.names = FALSE) 
zoo.new # check.names argument is honoured, names remain unchanged (good!) 

回答

2

是没可能迫使merge.xts离开列名不变(不带补丁的底层C代码)。

在你的问题中,你在你的xts对象上使用了merge.zoo ...所以我不确定你的问题是什么。如果你不喜欢那个zoo.new是一个动物园对象,只需将它包装在as.xts

+0

感谢您的确认。在它的表面上,动物园的物体看起来很好,我只是想知道是否有任何隐藏的陷阱。我会包裹他们。 – SlowLearner

相关问题