私が R を使用する目的でパフォーマンスに影響を与えるものはほとんどありませんが、1 つの遅いタスクについては、データ フレームの使用からxtsオブジェクトへの使用に切り替えたところ、約 10 倍の非常に満足のいくスピードアップが得られました。
ただし、オブジェクトmerge.xtsをマージするときに列名のチェックを要求しているように見えるという の癖に遭遇しました。xtsドキュメントは、関数が拡張されて従うことを指摘していますが、以下のコードに従うことはmerge.zooしません。merge.zoocheck.names = FALSEmerge.xts
merge.xtsQ:列名を変更せずに強制することはできますか? そうではなく、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!)