R 根据另一个数据集中的时间间隔汇总一个数据集中的数据

R 根据另一个数据集中的时间间隔汇总一个数据集中的数据,r,dataframe,datetime,sum,R,Dataframe,Datetime,Sum,我已经检查了其他几个类似的问题,但找不到任何适用于我的数据的代码。 我有两个数据集(df1和df2),一个有时间间隔(df1),另一个有降水数据(df2)。我想得到df1时间间隔的总降水量。由于df1中的所有其他数据,我无法合并这两个数据集,df1每条线对应于单个观测,我需要该观测时间跨度的总降雨量 df1具有日期间隔 [1] 1969-06-18 UTC--NA 1972-06-19 UTC--NA 1989-06-18 UTC--NA

我已经检查了其他几个类似的问题,但找不到任何适用于我的数据的代码。 我有两个数据集(df1和df2),一个有时间间隔(df1),另一个有降水数据(df2)。我想得到df1时间间隔的总降水量。由于df1中的所有其他数据,我无法合并这两个数据集,df1每条线对应于单个观测,我需要该观测时间跨度的总降雨量

df1具有日期间隔


  [1] 1969-06-18 UTC--NA             1972-06-19 UTC--NA             1989-06-18 UTC--NA            
  [4] 1992-06-13 UTC--NA             1993-06-17 UTC--1993-10-02 UTC 1997-06-21 UTC--1997-09-19 UTC
df2有每天的降水量数据(1987年至2018年的数据);
head(df2)

如何计算每个时间间隔内的降雨量总和? 我从间隔中创建了开始日期(df1$date)和结束日期(df1$end),然后尝试了以下操作:


df1$rain终于解决了这个问题。对于任何对答案感兴趣的人

df1$rain <- NA #empty column for data

for(i in 1:nrow(df1)) {
      s <- df1$Date[i]
      e <- df1$end[i]
      if(is.na(s)) {df1$rain[i] <- NA}
      if(is.na(e)) {df1$rain[i] <- NA}
      else{
      df1$rain[i] <- sum(df2$rain_mm[which(
      df2$Date >= s & 
      df2$Date <= e)], na.rm = TRUE)}
} 
df1$rain
                df1$rain[i] <-sum(df2$rain_mm[which(
                                     df1$Date>= df2$Date[i] &
                                     df2$Date<= df1$end[i])])}

There were 50 or more warnings (use warnings() to see the first 50)

 df1$rain 
NULL

Warning message:
Unknown or uninitialised column: 'rain'.
df1$rain <- NA #empty column for data

for(i in 1:nrow(df1)) {
      s <- df1$Date[i]
      e <- df1$end[i]
      if(is.na(s)) {df1$rain[i] <- NA}
      if(is.na(e)) {df1$rain[i] <- NA}
      else{
      df1$rain[i] <- sum(df2$rain_mm[which(
      df2$Date >= s & 
      df2$Date <= e)], na.rm = TRUE)}
}