|
| 1 | +library(survival) |
| 2 | +load("crea.rep.rda") |
| 3 | +CPRD<-read_dta("hf_cases_clinical.dta") |
| 4 | +CPRDb<-CPRD[CPRD$enttype=="4",] |
| 5 | + |
| 6 | +CPRD2<-read_dta("hf_cases_additional.dta") |
| 7 | +CPRDb<-merge(CPRDb,CPRD2,all.x=TRUE) |
| 8 | + |
| 9 | +#data5=start,#data6=stop |
| 10 | +CPRDA<-CPRDb[!is.na(CPRDb$data5)|!is.na(CPRDb$data6),] |
| 11 | +CPRDB<-CPRDb[is.na(CPRDb$data5)&is.na(CPRDb$data6),] #If neither the smoking or cessation data field are populated, fill in based on code |
| 12 | +CPRDC<-CPRD[!CPRD$enttype=="4",] |
| 13 | + |
| 14 | +Smokcodes<-read.csv("CPRDsmoking.csv") |
| 15 | +Smokcodes1<-Smokcodes[Smokcodes$Cessation==1,] |
| 16 | +Smokcodes2<-Smokcodes[Smokcodes$Smoking==1,] |
| 17 | + |
| 18 | +#eventdate2 is a temporary variable. |
| 19 | +CPRDA$eventdate2 <- strptime(as.character(CPRDA$eventdate), "%Y-%m-%d") |
| 20 | +CPRDA$eventdate3<-format(CPRDA$eventdate2, "%Y%m%d") |
| 21 | +CPRDB$eventdate2 <- strptime(as.character(CPRDB$eventdate), "%Y-%m-%d") |
| 22 | +CPRDB$eventdate3<-format(CPRDB$eventdate2, "%Y%m%d") |
| 23 | +CPRDC$eventdate2 <- strptime(as.character(CPRDC$eventdate), "%Y-%m-%d") |
| 24 | +CPRDC$eventdate3<-format(CPRDC$eventdate2, "%Y%m%d") |
| 25 | + |
| 26 | +CPRDB$data5<-ifelse(CPRDB$medcode %in% Smokcodes2$MedCode,CPRDB$eventdate3,NA) |
| 27 | +CPRDB$data6<-ifelse(CPRDB$medcode %in% Smokcodes1$MedCode,CPRDB$eventdate3,NA) |
| 28 | + |
| 29 | +CPRDC$data5<-ifelse(CPRDC$medcode %in% Smokcodes2$MedCode,CPRDC$eventdate3,NA) |
| 30 | +CPRDC$data6<-ifelse(CPRDC$medcode %in% Smokcodes1$MedCode,CPRDC$eventdate3,NA) |
| 31 | + |
| 32 | +CPRDB<-CPRDB[!is.na(CPRDB$data5)|!is.na(CPRDB$data6),] |
| 33 | +CPRDC<-CPRDC[!is.na(CPRDC$data5)|!is.na(CPRDC$data6),] |
| 34 | + |
| 35 | +CPRDA<-CPRDA[,c("patid","eventdate","eventdate2","eventdate3","data5","data6")] |
| 36 | +CPRDB<-CPRDB[,c("patid","eventdate","eventdate2","eventdate3","data5","data6")] |
| 37 | +CPRDC<-CPRDC[,c("patid","eventdate","eventdate2","eventdate3","data5","data6")] |
| 38 | + |
| 39 | +Smoke<-rbind(CPRDA,CPRDB,CPRDC) |
| 40 | +Smoke$data5 <- strptime(as.character(Smoke$data5), "%Y%m%d") |
| 41 | +Smoke$data5<-format(Smoke$data5, "%Y-%m-%d") |
| 42 | +Smoke$data5<-as.Date(Smoke$data5, "%Y-%m-%d") |
| 43 | +Smoke$data6 <- strptime(as.character(Smoke$data6), "%Y%m%d") |
| 44 | +Smoke$data6<-format(Smoke$data6, "%Y-%m-%d") |
| 45 | +Smoke$data6<-as.Date(Smoke$data6, "%Y-%m-%d") |
| 46 | + |
| 47 | +Smoke<-Smoke[!is.na(Smoke$data5),] |
| 48 | +Smoke$patid<-as.character(Smoke$patid) |
| 49 | + |
| 50 | +length(unique(crea.rep$PatientID[crea.rep$patid %in% Smoke$patid])) |
| 51 | +#Only 2 patients in our dataset have smoking information |
| 52 | +indx1 <-neardate(crea.rep$PatientID, Smoke$patid, crea.rep$event.date, Smoke$eventdate,best="prior") |
| 53 | + |
| 54 | +crea.rep$SmokeDate<-Smoke[indx1, "data5"] |
| 55 | +crea.rep$StopDate<-Smoke[indx1, "data6"] |
| 56 | +crea.rep$Smoker<- ifelse(as.numeric(abs(crea.rep$event.date - crea.rep$SmokeDate))>=0, 1, 0) |
| 57 | +crea.rep$Smoker<- ifelse(!is.na(crea.rep$StopDate)&as.numeric(abs(crea.rep$event.date - crea.rep$StopDate))>=0, 0, crea.rep$Smoker) |
| 58 | +crea.rep$Smoker<-unlist(crea.rep$Smoker) |
| 59 | +#Remove working columns: |
| 60 | +#crea.rep<-crea.rep[,c(1:106)] |
0 commit comments