每年最大数据

时间:2018-10-09 15:44:55

标签: r

start.date  spell length  
1987-10-01         34  
1987-10-25         2  
1987-10-30         5  
1987-11-16         78  

我正在尝试找到一个可以查看30年数据并且仅保留每年最长拼写长度的代码。从理论上讲,我在一个数据框中将有30个日期和30个拼写长度。先感谢您!

最终结果

start.date  spell length  
1987-11-16        78

1 个答案:

答案 0 :(得分:1)

我们可以使用which.max"spell length"列中找到最大值的索引,并使用它来对数据集的行进行子集化

dat[which.max(dat[[2]]),, drop = FALSE]

如果存在多个年份,则提取“年份”部分作为分组变量,以在ave中使用,以创建逻辑索引来对数据集的行进行子集设置

grp <- format(as.Date(dat$start.date), "%Y")
i1 <- with(dat, ave(`spell length`, grp, FUN = max) == `spell length`)
dat[i1, , drop = FALSE]