【问题标题】:Trying to create a Dummy for Covid period试图为 Covid 时期创建一个假人
【发布时间】:2020-07-14 16:32:26
【问题描述】:

我正在尝试为特定日期创建一个虚拟变量(covid 效应)

使用下面的代码时,列中只有 NA。

df$dummy <- ifelse(df$date > as.Date("2018-01-01", format = "%Y/%m/%d") &
                               df$date < as.Date("2020-06-15", format = "%Y/%m/%d"), 1, 0)

有人知道怎么解决吗?

【问题讨论】:

  • 嗨@Alexvitoria,您可以将数据的head(df$date) 放入代码中吗?也请在 df$dummy.. 行前放四个空格以将其转换为代码格式。
  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
  • 谢谢大家,我整理好了!

标签: r dummy-variable


【解决方案1】:
as.Date("2018-01-01", format = "%Y/%m/%d")

将返回 NA,使用以下之一:

as.Date("2018/01/01", format = "%Y/%m/%d")
as.Date("2018-01-01", format = "%Y-%m-%d")

我还要补充一点,dplyr 是一个用于处理表格的出色软件包,结果可能如下所示:

library(dplyr)
df <- df %>% 
     mutate(Dummy = ifelse(date > as.Date("2018/01/01", format = "%Y/%m/%d") & date < as.Date("2020/06/15", format = "%Y/%m/%d"), 1, 0))

最后,添加一个可重现的示例总是有帮助的,只需添加

df <- data.frame(date = as.Date(c("2018/05/01", "2018/01/01"), format = "%Y/%m/%d"))

将使回答问题更容易

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多