r - 选择结果分析中的第一个日期
问题描述
具有以下数据集:
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$dateMI
df$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)
有人可以帮忙吗?
谢谢!
解决方案
她就是你需要的:
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)
}
推荐阅读
- javascript - 如何使用 htmlunit 选择页面上的单选按钮(Web Scraping)
- graph - 将第二条边的属性添加到现有图中
- python - 行为.use_step_matcher | 如何巧妙或有效地使用它?| 好的设计原则?
- node.js - 如何使用 ESP8266 向 Heroku API 发送 get 或 post 请求?
- cucumber - 赛普拉斯中 StepDefinition 的不同文件夹
- gnu-make - Automake/autotools 并使用“--dry-run”和“--always-make”进行制作
- python - 无法使用 OOP 打印老鼠迷宫问题?
- .net-core - Npgsql.PostgresException (0x80004005): 42710: 在执行迁移文件时已经键入“”
- android - Android Studio - 带有大写字母的键盘锁定每个新单词
- email - 由于 msnbot,发送给 Outlook 用户的电子邮件验证链接过期