我想在两个数据帧(dfs)之间匹配三个单独的值,如果为true,则在单独的列中返回一个虚拟值。具体来说,我想隔离在某个日期或之后发生的事件。
我现在想出的代码如下:
library(tidyverse)
test <- trade %>%
mutate(merger = case_when(trade$hhnum %in% allfilter$hhnum & trade$cusip %in% allfilter$acquirer_cusip & as.Date(trade$date) >= as.Date(allfilter$date) ~ 1))
前两个“过滤器”(即hhnum
和cusip
)似乎运行良好,但是日期过滤器返回以下错误:
在
>.default
(as.Date(。$ date),as.Date(allfilter $ date))中:较长的对象长度不是较短的对象长度的倍数<< / p>
我了解这意味着我正在弄乱代码方面的知识,只是我不知道如何改进它。
由于每行的日期不同(我大约有100万行),所以我无法将日期硬编码到代码中。最好获得使用allfilter$date
列的代码