수집

2017-11-07 2 views
0

내가 최대 값의 샘플에서 여러 시간 인구의 기간과 저장을 최대 가치를 수집하는 기능을 만들려고 해요 (예. 블록 맥시 마)수집

지금까지 내가 가지고 :

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)