我使用R的很少是性能敏感的,但是对于一个慢的任务,我已经从使用数据帧切换到xts
个对象,速度非常快,大约是10倍。
但是,我遇到了merge.xts
的怪癖,这似乎是在合并xts
对象时坚持检查列名。文档指出函数扩展merge.zoo
和merge.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!)
答案 0 :(得分:2)
是否无法强制merge.xts
保持列名不变(没有基础C代码的补丁)。
在您的问题中,您在xts对象上使用了merge.zoo
...所以我不确定您的问题是什么。如果您不喜欢zoo.new
是动物园对象,只需将其包裹在as.xts
中。