2011-12-16 3 views
1

내 데이터가 열에 있습니다. 3 행마다 스캔하여 최대 값을 찾아야합니다. 그것은 일종의 이동 평균 기법이지만 데이터를 평균화하는 것을 원하지 않습니다. 최대 값이 주요 관심사입니다. 예 : 29.66, 29.59, 30.05 = 최대 30.05
다음 29.59, 29.59, 30.05 = 최대 30.05열의 최대 값 찾기

방법 점에서 R-소프트웨어를 수행하는 것입니다 이동입니까?

29.66 
29.59 
30.05 
29.59 
29.59 
30.05 
29.59 
29.92 
30.26 
30.18 
30.47 

답변

2

동물원 패키지에 rollapply를 참조하십시오 패키지 zoo에서 rollapply(x, 3, max)

3

기능 rollapply 트릭을 수행해야합니다

library(zoo) 
values = c(29.66, 29.59, 30.05, 29.59, 29.59, 30.05, 29.59, 29.92, 30.26, 30.18, 30.47) 

rollmax(values, k=3) 
# or 
rollapply(values, 3, max) 

# [1] 30.05 30.05 30.05 30.05 30.05 30.05 30.26 30.26 30.47 
+0

덕분에 많은 홍콩과 매트! 그러나 ... 오류 메시지가 나타납니다. UseMethod ("rollapply") 오류 : 'rollapply'의 적용 가능한 메소드가 "c ('double', 'numeric') 클래스의 객체에 적용되지 않았습니다." – Eddie

+0

안녕하세요. 알 겠어! 내 동물원 패키지를 업데이트했는데 모든 것이 잘되었습니다. 고마워, 친구. – Eddie

+0

또한 'rollmax'에 유의하십시오. –