这个问题在某种程度上与以下问题有关:在非平凡条件下有效地合并两个数据框,并检查r中的日期是否在两个日期之间。我在这里发布的一个请求功能是否存在: GitHub问题
我希望使用连接两个数据框dplyr::left_join()。我用来加入的条件是小于,大于,即<=和>。是否dplyr::left_join()支持此功能?或仅在键=之间使用操作符。从SQL运行起来很简单(假设我在数据库中有数据框)
这是一个MWE:我有两个数据集,一个企业年(fdata),而第二个是每五年发生一次的调查数据。因此,对于fdata两个调查年度之间的所有年份,我都会加入相应的调查年度数据。
id <- c(1,1,1,1,
2,2,2,2,2,2,
3,3,3,3,3,3,
5,5,5,5,
8,8,8,8,
13,13,13)
fyear <- c(1998,1999,2000,2001,1998,1999,2000,2001,2002,2003,
1998,1999,2000,2001,2002,2003,1998,1999,2000,2001,
1998,1999,2000,2001,1998,1999,2000)
byear <- c(1990,1995,2000,2005)
eyear <- c(1995,2000,2005,2010)
val <- c(3,1,5,6)
sdata <- tbl_df(data.frame(byear, eyear, val))
fdata <- tbl_df(data.frame(id, fyear))
test1 <- left_join(fdata, sdata, by = c("fyear" >= "byear","fyear" < "eyear"))
我懂了
Error: cannot join on columns 'TRUE' x 'TRUE': index out of bounds
除非是否left_join可以处理该条件,但是我的语法缺少什么?
精慕HU
慕桂英4014372