문제
나는 두 개의 동물원 개체를 함께 rbind.zoo하고 싶다. 내가 테스트 할 때 나는 다음과 같은 문제를 발견했다 (?) ...
참고 : 아래는 예입니다. 예시적인 것 외에는 분명히 아무런 의미가 없습니다. 동물원 대상이 있습니다. 'X'라고 부릅니다. 나는 그것을 두 부분으로 나누고 rbind.zoo를 함께 나누고 싶습니다. 원래 객체와 비교할 때 All.equal은 차이를 제공합니다.
'$ class'속성은 다르지만 어떻게 또는 이유를 알 수 없습니다. 이 XTS 객체를 만들면 All.equal이 예상대로 작동합니다.
즉 .....
X.date <- as.POSIXct(paste("2003-", rep(1:4, 4:1),
"-", sample(1:28, 10, replace = TRUE), sep = ""))
X <- zoo(matrix(rnorm(24), ncol = 2), X.date)
a <- X[c(1:3), ] # first 3 elements
b <- X[c(4:6), ] # second 3 elements
c <- rbind.zoo(a, b) # rbind into an object of 6 elements
d <- X[c(1:6), ] # all 6 elements
all.equal(c, d) # are they equal?
~~~~
All.equal은 다음과 같은 차이점을 제공합니다.
"속성 : <구성 요소 3 : 속성 : <길이 불일치 : 첫 번째 구성 요소에 대한 비교 >>"
해결책
예, 속성 처리 측면에서 버그를 찾았을 수도 있습니다. 반면에 누가 신경 쓰나요? c
그리고 d
효과적으로 동일합니다.
R> c - d
2003-01-07 0 0
2003-01-15 0 0
2003-01-17 0 0
2003-01-18 0 0
2003-02-17 0 0
2003-02-22 0 0
R>
물체를 검사하면 아무것도 없습니다.
R> str(c)
‘zoo’ series from 2003-01-07 to 2003-02-22
Data: num [1:6, 1:2] 0.79 -0.731 1.574 -0.694 0.358 ...
Index: POSIXct[1:6], format: "2003-01-07" "2003-01-15"
"2003-01-17" "2003-01-18" "2003-02-17" "2003-02-22"
R> str(d)
‘zoo’ series from 2003-01-07 to 2003-02-22
Data: num [1:6, 1:2] 0.79 -0.731 1.574 -0.694 0.358 ...
Index: POSIXct[1:6], format: "2003-01-07" "2003-01-15"
"2003-01-17" "2003-01-18" "2003-02-17" "2003-02-22"
보수자에게 정중 한 메일을 보내는 것이 좋습니다. zoo
사건을 설명합니다.
다른 팁
R은 posixct 객체의 tzone 속성을 일관되게 취급하지 않습니다. 동물원은 이것과 아무 관련이 없습니다. 동물원을 전혀 사용하지 않고도 이와 같은 사례를 생각해 낼 수 있습니다. 원래 코드의 C와 D는 실제로 TZONE 속성을 제외하고 동일합니다.
TZONE 속성을 제거하면 C와 D는 동일합니다.
attr(X.date, "tzone") <- NULL ##### add after defining X.date
동물원의 경우 거의 모든 시간 수업을 지원하므로 시간대가 필요하지 않은 경우 다른 시간 수업을 사용하는 것을 고려할 수 있습니다. 시간대는 필요하지 않은 경우 정당한 이유없이 물건을 복잡하게 만듭니다. 예를 들어, 예를 들어 날짜 클래스를 사용할 수있었습니다.
자세한 내용은 R News 4/1을 읽으십시오.