首页 > 解决方案 > 选择结果分析中的第一个日期

问题描述

具有以下数据集:

test <- data.frame(PatientID = c("1000285","1000317", "1000399","10006485","10995700317" ), MI = c("FALSE","FALSE", "TRUE","TRUE","FALSE" ), dateMI = c(NA, NA, "2008-10-26", "2008-10-26", NA),A = c("FALSE","FALSE", "TRUE","TRUE","TRUE" ), dateA = c(NA, NA,"2008-10-26", "2010-11-06", "2019-02-14"),  stringsAsFactors = F)

我想创建一个名为"outcome". 这将由以下定义:

df$outcome = ifelse(df$MI| df$A == 'TRUE', 'TRUE' , 'FALSE')

现在,问题是我需要创建一个名为的列"date of the outcome",并且我想用以下条件填充该列:

如果df$outcome==TRUE我希望用或中df$date_of_outcome首先出现的日期填充该列,否则,用 NA 填充它。所以我最终会得到这样的数据集:df$dateMIdf$dateA

 test <- data.frame(PatientID = c("1000285","1000317", "1000399","10006485","10995700317" ), MI = c("FALSE","FALSE", "TRUE","TRUE","FALSE" ), dateMI = c(NA, NA, "2008-10-26", "2008-10-26", NA),A = c("FALSE","FALSE", "TRUE","TRUE","TRUE" ), dateA = c(NA, NA,"2008-10-26", "2010-11-06", "2019-02-14"), outcome= c("FALSE","FALSE", "TRUE","TRUE","TRUE" ), date_of_outcome = c(NA, NA,"2008-10-26", "2008-10-26", "2019-02-14"),  stringsAsFactors = F)

有人可以帮忙吗?

谢谢!

标签: rdateif-statementconditional-statements

解决方案


她就是你需要的:

test <- data.frame(PatientID = c("1000285","1000317", "1000399","10006485","10995700317" ), MI = c("FALSE","FALSE", "TRUE","TRUE","FALSE" ), dateMI = c(NA, NA, "2008-10-26", "2008-10-26", NA),A = c("FALSE","FALSE", "TRUE","TRUE","TRUE" ), dateA = c(NA, NA,"2008-10-26", "2010-11-06", "2019-02-14"),  stringsAsFactors = F)

test$outcome = ifelse(test$MI == 'TRUE' | test$A == 'TRUE', 'TRUE' , 'FALSE')

test$`date of the outcome` = NA

for(i in 1:nrow(test)){
  test$`date of the outcome`[i] = ifelse(test$outcome[i]=='TRUE', as.character(min(as.Date(test$dateMI[i]), as.Date(test$dateA[i]))), NA)
}

推荐阅读