Usando dplyr :: mutate entre dois quadros de dados para criar coluna com base no período

No momento, tenho dois quadros de dados. Um contém mais de 11 milhões de linhas de uma data de início, data de término e outras variáveis. O segundo quadro de dados contém valores diários para graus-dia de aquecimento (basicamente uma medida de temperatura).

set.seed(1)    
library(lubridate)
date.range <- ymd(paste(2008,3,1:31,sep="-"))
daily <- data.frame(date=date.range,value=runif(31,min=0,max=45))
intervals <- data.frame(start=daily$date[1:5],end=daily$date[c(6,9,15,24,31)])

Na realidade, meu dataframe diário tem todos os dias durante 9 anos e meus intervalos dataframe tem entradas que se estendem por datas arbitrárias nesse período. O que eu queria fazer era adicionar uma coluna ao meuintervals dataframe chamadonhdd que somaram os valores diários correspondentes a esse intervalo de tempo (término exclusivo).

Por exemplo, nesse caso, a primeira entrada desta nova coluna seria

sum(daily$value[1:5])

e o segundo seria

sum(daily$value[2:8]) and so on.

Eu tentei usar o seguinte código

intervals <- mutate(intervals,nhdd=sum(filter(daily,date>=start&date<end)$value))

Isso não está funcionando e acho que pode ter algo a ver com não fazer referência às colunas corretamente, mas não tenho certeza para onde ir.

Eu realmente gostaria de usardplyr para resolver isso e não um loop, porque 11 milhões de linhas levarão tempo suficiente usando o dplyr. Eu tentei usar mais delubridate mas o dplyr parece não suportar a classe Period.

Editar: estou usando datas deas.Date agora em vez delubridatemas a questão básica de como se referir a um dataframe diferente de dentromutate Ainda está de pé

questionAnswers(0)

yourAnswerToTheQuestion