有条件地从列中删除值-R

时间:2019-05-02 15:41:57

标签: r dplyr

我想在两个数据帧(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))

前两个“过滤器”(即hhnumcusip)似乎运行良好,但是日期过滤器返回以下错误:

  

>.default(as.Date(。$ date),as.Date(allfilter $ date))中:较长的对象长度不是较短的对象长度的倍数<< / p>

我了解这意味着我正在弄乱代码方面的知识,只是我不知道如何改进它。

由于每行的日期不同(我大约有100万行),所以我无法将日期硬编码到代码中。最好获得使用allfilter$date列的代码

0 个答案:

没有答案