У меня есть следующие два фрейма данных:
Date <- seq(as.Date("2013/1/1"), by = "day", length.out = 46)
x <-data.frame(Date)
x$discharge <- c("1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200","1100","1400","1200","1100","1400","1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200","1100","1400","1200","1100","1400","1000","1100","1200","1300","1400","1200","1300","1300","1200","1100","1200","1200")
x$discharge <- as.numeric(x$discharge)
И
Date_from <- c("2013-01-01","2013-01-15","2013-01-21","2013-02-10")
Date_to <- c("2013-01-07","2013-01-20","2013-01-25","2013-02-15")
y <- data.frame(Date_from,Date_to)
y$concentration <- c("1.5","2.5","1.5","3.5")
y$Date_from <- as.Date(y$Date_from)
y$Date_to <- as.Date(y$Date_to)
y$concentration <- as.numeric(y$concentration)
Я пытаюсь вычислить средний расход по ежедневным расходам в кадре данных x
для каждой строки в кадре данных y
на основе диапазона дат от Date_from
до Date_to
в кадре данных y
. Обратите внимание, что существует разрыв в измерениях в кадре данных y
между 2013-01-08 по 2013-01-14 и 2013-01-26 по 2013-02-09. Этот разрыв объясняется тем, что за это время не было проведено никаких измерений. И этот разрыв вызывает у меня головную боль, так как я использовал следующий код для расчета среднего расхода для каждого диапазона дат в y
:
rng <- cut(x$Date, breaks=c(y$Date_from, max(y$Date_to),
include.lowest=T))
range<-cbind(x,rng)
discharge<-aggregate(cbind(mean=x$discharge)~rng, FUN=mean)
Однако, если вы проверите диапазон во фрейме данных range
, диапазон с 2013-01-01 по 2013-01-07 будет расширен до 2013-01-14, но мне нужен только до 2013-01-07 и затем с перерывом, пока не начнется следующий диапазон 2013-01-15.