【发布时间】:2018-04-09 19:12:14
【问题描述】:
在下面的示例中,我需要根据两个不同的标识符(即 date 和 id)来匹配两个数据帧。但是,我需要设置“标识符范围”:new_df <- merge(df1 , df2 , by = c(id , date +-1 day interval) 这个新数据框应该包含在[-1, +1] 区间内发生的所有观察结果。
下面的第一个数据具有每天的值,我只需要删除不在上述区间内的观察值。 “零”天将在第二个数据框中 (df2)。
//第一个数据:
id <- c(a56 , a56 , a56 ,a56 ..., a1782)
date <-(1990-04-07 , 1990-04-08 , 1990-04-09 , 1990-04-10, ... , 1994-08-19)
value <- (0.003 , 0.023 , 0.127 , 0.278 , 0.378, ... ,0.378)
df1 <- data.frame(id ,date)
//第二个数据:
id <- c(a56 , a78 , a99 , a101, a1893 , a167 , a1782)
date <-c(1990-04-10 , 1990-08-18 , 1990-10-17, 1991-04-10 , 1994-08-18 ,1995-10-17)
df2 <- data.frame(id , date)
期望的输出如下:
1. a56 1990-04-09 0.278
2. a56 1990-04-10 0.378
3. a56 1990-04-11 0.444 .....
9999. a1782 1994-08-18 0.345
1000. a17882 1994-08-19 0.378
提前致谢!
【问题讨论】:
-
当我完全按照上面的方式运行您的代码行时,它会生成一个
df1,其中没有任何内容,并且不会生成df2。您能否包括此示例所需的其他数据,以便问题可重现?谢谢:)