Apply filter to possible values with ifelse()
fun = function(x, i, min, max)
which.min(cumsum(x) * ifelse(i >= min & i <= max, 1, NA))
with
> fun(dat$tmean.acc, dat$day, 213, 365)
[1] 248
or
> dat %>% summarize(
rain.min = fun(rain.acc, day, 213, 365),
tmean.min = fun(tmean.acc, day, 213, 365)
)
rain.min tmean.min
1 329 248
or
> filter(dat, row_number() == fun(tmean.acc, day, 213, 365))
day rain tmean mean.daily.rain mean.daily.tmean rain.acc tmean.acc
1 248 4.846782 15.39589 2.4938 24.03155 2.352982 -8.635665
source
share