2011-12-16 63 views
1

我的數據在列中。我需要掃描每3行,並出現最大值。這是一種移動平均技術,但我不希望數據被平均。最大值是我最關心的問題。 e.g 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動物園包:rollapply(x, 3, max)

3

在包zoo功能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','數字')」 – Eddie

+0

嗨亞馬遜......對不起。我知道了!更新我的動物園包,一切都很好。非常感謝好友。 – Eddie

+0

另請注意'rollmax'。 –