2013-11-04 4 views
2

시간 해상도가 서로 다른 두 개의 시계열 (센서 데이터)이 있습니다. "xts/zoo"(TS1) 클래스의 시계열은 시간 값을 포함하고 다른 시계열 (TS2)은 시간 분해능이 더 좋습니다 (10 분마다 한 번 관찰). 나는. TS1의 경우 하루 24 개의 데이터 포인트 (관찰)가 있고 TS2의 경우 하루 144 개의 데이터 포인트가 있습니다.[R + zoo] : 다른 시간 해상도의 시계열에 대한 작업

하루에 TS1-TS2을 계산할 때 24 데이터 포인트 (낮은 시간 해상도)로 결과를 얻습니다. 내가 성취하고자하는 것은 144 개의 데이터 포인트 (TS2,보다 나은 시간 해상도)로 결과를 얻는 것입니다.

R에서 이것을 수행 할 수 있습니까?

PS :

매 시간 간격으로 난 그냥 TS1에서 하나 명의 관찰과 TS2에서 6 개 관찰을, 그래서 하나가 모든 사이에 맞게 선을 그립니다 만약 내가이 문제가 해결 될 수있다 상상할 수 있기 때문에 더 사소한 문제가 없습니다

TS1의 두 점을 계산하고 TS2에서 선과 데이터 점 간의 차이를 계산합니다. 그러나 나는 이것을하기위한 R 기능을 알지 못합니다.

답변

3

linear/constant approx의 경우 na.approx을 사용하거나 다항식 1의 경우 na.spline을 사용하여 누락 된 값을 근사 할 수 있습니다.

## new index to be used 
new.index <- 
    seq(min(index(TS1)),max(index(TS1)), by=as.difftime(10,units='mins')) 
## linear approx 
TS1.new <- na.approx(merge(TS1 ,xts(NULL,new.index))) 

이제 각각의 전체에 대해 동일한 값을 사용

TS2-TS1.new 
+0

또는'na.locf'을 (당신은 그들이 동일한 시작 날짜가 있는지 확인해야합니다 심지어 어쩌면 경우), 당신의 TS를 susbtract 수 있습니다 선형 보간이 응용 프로그램에 대해 잘못된 것으로 판단되는 경우 시간. (그리고 다른 방법으로,'na.spline'은 직선 대신에 곡선을 맞추려고합니다.) –