2012-03-14 5 views
4

매일 데이터가 있고 주말을 놓친 동물원 개체가 R에 있습니다. 내가 할 경우내부 NA 시계열, 동물원, R

mkt.ar <- ar(zoo_object) 
Error in na.fail.default(as.ts(x)) : missing values in object 

: 나는 개체에 (ar() 예를 들어) 일부 기능을 실행하려고 할 때이 오류가

mkt.ar <- ar(zoo_object, na.action=na.omit) 
Error in na.omit.ts(as.ts(x)) : time series contains internal NAs 

이 동물원은 TS 물건을 변환 할 때부터 의미가 있습니다 , 주말은 본질적으로 빠져 있습니다. coredata(zoo_object)을 사용하여 벡터로 변환하고 ar()을 실행하는 것 이외에 누락 된 데이터를 건너 뛰도록 R에 지시하는 방법이 있습니까?

감사

답변

6

나는 매일이 평일과 주말하지만 데이터가 존재하지 않은 일을 포함하여 데이터에 표시되어 있습니다 수집 NA (전혀 존재하지 않는 반대). 나중에 더 명확하게 테스트 데이터를 제공하십시오. 충분한 데이터가있는 경우 솔루션에서 제외

에만 금요일에 또는 그 이전에 마지막으로 비 누락 된 값을 추출하여 ar 매주 데이터을 수행 할 수 없었다 :

library(zoo) 

# test data 
library(chron) # is.weekend 
z <- zoo(100:130, as.Date("2000-01-01") + 0:30) 
z[is.weekend(time(z))] <- NA 

# extract Fridays 
zfri <- na.locf(z)[format(time(z), "%w") == 5] 

(가있는 경우에는이 금요일 누락 zna.locf(z)를 대체하여 단축 될 수 있습니다.)

또 다른 가능성이 번 1, 2, ...를 사용하지만 그들에게이 경우 당신은 항상 할 수있는 이름을 제공하는 것입니다 시간의 이름을 확인하여 포인트가 속한 날짜를 찾으십시오.

z1 <- na.omit(z) 
time(z1) <- setNames(seq_along(z1), time(z1)) 
-1

간단한 방법은 (z1 동물원 개체이다), 예를 들면 의해 data.frame 오브젝트로 동물원 오브젝트로 변환 될 것이다

dz1<-data.frame(na.omit(z1)) 

다음 시계열 오브젝트로 변환한다.

ts(dz1, frequency=5)