为R中的Date变量优化If Else

问题描述

我正在使用包含有关Covid的城市的信息的数据集,并且如果日期t中的城市x是隔离的,我想添加一个变量,我创建了ifelse代码,但是进行2.3MM观测需要花费很多时间我有

我的数据集如下

City     Date
a      2020-03-04    
b      2020-03-04
a      2020-03-05    
b      2020-03-05
a      2020-03-06   
b      2020-03-06 
a      2020-03-07 
b      2020-03-07 

我的代码是这个

library(data.table
df <- df %>% 
   mutate(quarantine = 0)
df <- df %>%
   mutate(quarantine = fifelse(City = "a",fifelse(Date > as.Date("2020-03-04") &
                                      Date <= as.Date("2020-03-06"),1,0),quarantine) %>%
   mutate(quarantine = fifelse(City = "b",fifelse(Date > as.Date("2020-03-05") &
                                      Date <= as.Date("2020-03-07"),quarantine) 

直到我完成我拥有的34个城市为止,这一直重复着,这是一个很长的代码,但是我不知道如何优化它,因为每个城市都有不同的隔离日期,所以我不知道我是否可以循环它。

感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)