Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
847 views
in Technique[技术] by (71.8m points)

r - Finding maximum value in column

My data is in column. I need to scan every 3 rows and come out with the maximum values. It's kind of moving average techniques but I dont want the data to be averaged. Maximum values is my major concern. e.g 29.66, 29.59, 30.05 = maximum is 30.05
then move to 29.59, 29.59, 30.05 = maximum is 30.05

How to do that in R-software?

29.66
29.59
30.05
29.59
29.59
30.05
29.59
29.92
30.26
30.18
30.47
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The function rollapply in package zoo should do the trick:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...