4

私が 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!)
4

1 に答える 1

3

列名を変更せずに強制merge.xtsすることはできませんか (基になる C コードにパッチを適用する必要はありません)。

あなたの質問では、merge.zooあなたは xts オブジェクトで使用していました...だから、あなたの質問が何であるかわかりません。それが Zoo オブジェクトであるのが気に入らない場合zoo.newは、 でラップしてas.xtsください。

于 2013-01-20T04:11:15.967 に答える