【问题标题】:Create a column based on meeting a condition in 2 as.Date columns in R根据满足 R 中 2 as.Date 列中的条件创建列
【发布时间】:2021-04-20 17:11:59
【问题描述】:

在我的 df 我有 2 列:

"covid 测试日期" & “死亡日期”

两列都有很多 NA。 并且可能发生有人去世但从未进行过covid测试,或者有人进行过covid测试但从未去世。 示例:

df <- data.frame(PatientID = c("3454","345","5","345","567","79"),
                 date_of_covid_test = c(2020-04-02, NA, NA, 2020-11-03, NA, 2020-12-05),
                 date_of_death = c(2020-05-03, 2000-03-01, 2000-01-01, NA, NA, NA), stringsAsFactors = F)

我想根据这句话创建一个额外的列:

“如果死亡日期发生在 covid 测试日期之后 = 是,否则 = 否”

预期输出将是:只有患者 3454 为 TRUE,其他所有患者均为 FALSE。

基本上重点是要知道死亡是否发生在covid测试之后,那是真的。或者是 FALSE。

我希望这是有道理的

什么是正确的编码方式?

谢谢!

【问题讨论】:

  • 你能显示几行数据和预期的输出吗

标签: r date if-statement conditional-statements conditional-formatting


【解决方案1】:

如果你确定你的列是日期格式,你可以试试这个:

library(dplyr)

df <- df %>% 
  mutate(
    condition = ifelse(date_of_covid_test < date_of_death, "yes", "no")
  )

df 是您的数据框,date_of_covid_testdate_of_death 是数据框的列名。

它有效,但请确保日期行为正确!

【讨论】:

  • 谢谢!我想在新列中创建它。我该怎么办?
  • dplyr's mutate 命令在您的数据框中创建一个新列。你测试过我发布的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多