2013-04-15 1 views
3

다른 질문에 "선형 보간법을 사용하여 누락 된 xts/동물원 데이터를 R에 추가하십시오"는 여기 Add missing xts/zoo data with linear interpolation in R에서 찾을 수 있습니다. zoo/xts를 사용하여 R의 특정 값을 삭제하십시오.

하지만 일반적으로 내 데이터를 하나 더 문제가

- 내가해야 할 "잘못된"값이 제작하지 의미 :

"2012-04-09 05:03:00",2 
"2012-04-09 05:04:00",4 
"2012-04-09 05:05:39",-10 
"2012-04-09 05:09:00",0 
"2012-04-09 05:10:00",1 

그래서 실종 날짜의 교체 작동 :

y <- merge(y, zoo(,seq(start(y),end(y),by="min")), all=TRUE) 
y <- na.approx(y) 

그러나 당신이 볼 수 있듯이 -10은 의미가 없으며, 값은 00 : 00 인 min : sec가 아닙니다. na.rm과 같은 솔루션이 필요합니다. 감사합니다.

답변

2

뭘 원하는지 확실하지 않습니다. 하지만 당신이 xts 개체에서 일부 outliers를 제거하려는 것 같아요. "na.rm"과 같은 솔루션을 원한다면, 하나의 아이디어는 원하지 않는 값을 NA으로 대체 한 다음 na.omit을 사용하여 값을 제거하는 것입니다.

x <- read.zoo(text=' 
"2012-04-09 05:03:00",2 
"2012-04-09 05:04:00",4 
"2012-04-09 05:05:39",-10 
"2012-04-09 05:09:00",0 
"2012-04-09 05:10:00",1',sep=',',tz='') 

x[x == -10] <- NA 
na.omit(x) 

        x 
2012-04-09 05:03:00 2 
2012-04-09 05:04:00 4 
2012-04-09 05:09:00 0 
2012-04-09 05:10:00 1 

편집

날짜 별 조건을 얻으려면, 당신은 지수 (x)의보고 예를 포맷 할 수 있습니다.

format(index(dat),'%S') 
[1] "00" "00" "39" "00" "00" 

그러나 여기 내가 사용하는 내장 .indexsec (.. 또한 .indexhour, .indexmin 참조)

dat[.indexsec(dat) != 0] 
2012-04-09 05:05:39 
       -10 
+0

정확히 무슨 뜻입니까? 감사합니다. 이 솔루션은 특정 가치를 찾는 것입니다 - 날짜별로 가능성이 있습니까? h : m : 00- 초 동안? –

+0

@HerrStudent 답변을 업데이트합니다. – agstudy

4
다음

(이 경우 0) 임계 값 이하의 값을 대체하는 방법 NA와. 나중에 na.approx을 실행할 수 있습니다.

# read in 
Lines <- '"2012-04-09 05:03:00",2 
"2012-04-09 05:04:00",4 
"2012-04-09 05:05:39",-10 
"2012-04-09 05:09:00",0 
"2012-04-09 05:10:00",1 
' 
data2 <- as.xts(read.zoo(text = Lines, sep = ",", tz = "")) 

# perform calculation 
data2[data2<0] <- NA 
관련 문제