我使用 R 的东西很少是性能敏感的,但对于一项缓慢的任务,我已经从使用数据帧切换到xts
对象,其速度非常令人满意,大约为 10 倍。
但是,我遇到了一个怪癖,就是合并对象merge.xts
时似乎坚持要检查列名。xts
文档指出该函数扩展merge.zoo
并merge.zoo
确实遵守check.names = FALSE
,但按照下面的代码不遵守merge.xts
。
问:是否可以强制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!)