2016-04-01 11 views
1

Ich habe diesen Datenrahmen in R:Finden höchsten Wert in zehn Jahren

set.seed(1) 
count <- sample(1:100, 100, replace = TRUE) 

set.seed(2) 
year <- sample(1970:2015, 100, replace = TRUE) 

library(dplyr) 

df <- data_frame(count, year) 

df 

Source: local data frame [100 x 2] 

    count year 
1  27 1978 
2  38 2002 
3  58 1996 
4  91 1977 
5  21 2013 
6  90 2013 
7  95 1975 
8  67 2008 
9  63 1991 
10  7 1995 
.. ... ... 

Wie kann ich die höchste Zählung in jeder Dekade (70s ... 10s) zu finden?

Antwort

5

Mit dplyr mit:

library(dplyr) 

df %>% group_by(floor(year/10)*10) %>% summarise(max_cnt = max(count)) 
4

Eine weitere Option, sind da Sie bereits dplyr

df %>% 
    mutate(decade = floor(year/10) * 10) %>% 
    group_by(decade) %>% 
    top_n(n = 1,wt = count) 
Verwandte Themen