2017-11-07 13 views
0

におけるベクターからの最大値を収集これまでのところ、私は持っています:私は人口の複数の期間から最大値を収集し、最大値のサンプルに格納する機能を作成しようとしている(すなわち。ブロックマキシマ)</p> <p>R

function(pop, n) 
{ 
    x <- length(pop) 
    sample <- numeric(x/n) 
    j=0 
    i=0 
    while(i<x) 
    { 
     sample[j] <- max(pop[i:i+n]) 
     j=j+1 
     i=i+n 
    } 
    return(sample) 
} 

しかし、私は最大値を計算する正しい方法を理解できません。 誰も助けることができますか?

+2

使用 '私:私は'ので、(私は+ N)は ':(:I I)+ N '私はN'を+'です。 Rのインデックスが1から始まることにも注意してください。 –

+0

ああ、私はそれを見つけませんでした、ありがとう! –

答えて

0

あなたはそのためのdplyrを使用することができます。

library(dplyr) 

block_max <- function(pop, n) { 
    data.frame(pop = pop, group = ceiling(seq_along(pop)/n)) %>% 
    group_by(group) %>% 
    summarise(max_group = max(pop)) 
} 
block_max(1:100, 11) 
関連する問題