有没有办法让merge.xts保持名称不变?

时间:2013-01-20 00:10:08

标签: r xts

我使用R的很少是性能敏感的,但是对于一个慢的任务,我已经从使用数据帧切换到xts个对象,速度非常快,大约是10倍。

但是,我遇到了merge.xts的怪癖,这似乎是在合并xts对象时坚持检查列名。文档指出函数扩展merge.zoomerge.zoo确实服从check.names = FALSE但是按照merge.xts下面的代码不会。{/ p>

问:是否可以强制merge.xts保持我的列名不变?不是,我可以在简单的merge.zoo个对象上互换使用xts(哪个确实有用)?

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!)

1 个答案:

答案 0 :(得分:2)

是否无法强制merge.xts保持列名不变(没有基础C代码的补丁)。

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