2013-01-20 2 views
3

제가 R을 사용하는 것은 성능에 민감합니다. 그러나 느린 작업 중 하나는 데이터 프레임을 사용하여 xts 개체로 전환했으며 속도는 대략 10 배정도입니다.merge.xts를 사용하여 이름을 변경하지 않는 방법이 있습니까?

그러나 나는 merge.xts이라는 단점을 가지고 있습니다. xts 개체를 병합 할 때 열 이름 검사를 고집하는 것으로 보입니다. 문서는 merge.zoo을 확장하고 merge.zoocheck.names = FALSE을 따르지 만 코드가 merge.xts에 해당하지 않는다고 지적합니다.

Q : merge.xts에 열 이름을 변경하지 않고 강제로 적용 할 수 있습니까? 그리고, (작동합니까)을 간단하게 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!) 

답변

2

은 불가능 (기본적인 C 코드 패치없이) 그대로 열 이름을 떠나지 merge.xts 강제한다.

귀하의 질문에 귀하의 XTS 객체에 merge.zoo을 사용 했으므로 귀하의 질문이 확실하지 않습니다. zoo.new이 동물원 개체 인 것을 마음에 들지 않으면 as.xts으로 감싸 주면됩니다.

+0

확인해 주셔서 감사합니다. 그것의 얼굴에 동물원 개체가 잘 보이는데, 나는 숨겨진 잡았다가 있는지 궁금 해서요. 내가 감쌀거야. – SlowLearner

관련 문제