Hello all, doing a study on antibiotics and hypoglycemia. I am pasting my code below for SAS. I was doing great and had no errors, until the very last step of logistic regression analysis: I get the following error there: ERROR: There are no valid observations. NOTE: The SAS System stopped processing this step because of errors. NOTE: There were 128052 observations read from the data set WORK.DATA5. Why am I getting no valid observations? for this step when there are 128052 observations read.. also I am able to get frequencies etc without any issues.. someone please help.. I am trying to get the odds ratios and its giving me an error at the very last step..... I post the code below: proc import DATAFILE="/home/u50297477/2014-2020.xlsx" OUT=data DBMS=XLSX REPLACE; run; data data2(rename=(patientage=patientage1 weightofpatient=weightofpatient1 bmi=bmi1 glucosevalue=glucosevalue1 dayofhospital=dayofhospital1 highestglucose=highestglucose1 lowestglucose=lowestglucose1)); set work.import; if mrn="MRN" then delete; run; data data3(drop=patientage1 weightofpatient1 bmi1 glucosevalue1 dayofhospital1 highestglucose1 lowestglucose1); set data2; patientage=input(patientage1, best.); WeightOfPatient=input(WeightOfPatient1, best.); BMI=input(BMI1, best.); GlucoseValue=input(GlucoseValue1, best.); DayOfHospital=input(DayOfHospital1, best.); HighestGlucose=input(HighestGlucose1, best.); LowestGlucose=input(LowestGlucose1, best.); run; *Subset based on age; data data4; set data3; where (18 <=patientage <=80); run; *verify; /* proc means data = data4 maxdec=0; var patientage; run; */ data data5; set data4; only_date=datepart(AdmitDtm); month_part=month(only_date); year_part=year(only_date); hour_part=hour(AdmitDTM); format only_date date9.; run; data data5; set data5; if 0<=hour_part<=6 then Timeofday=0; else if 7<=hour_part<=12 then Timeofday=1; else if hour_part > 12 then Timeofday=2; if GenderCode='M' then Sex=1; else Sex=0; if RaceCode='Black/African Americ' then Race=1; else if RaceCode='White' then Race=2; else if RaceCode='Asian Indian' then Race=3; else if RaceCode='Chinese' then Race=4; else if RaceCode='Other Race' then Race=5; else Race = 0; run; data data5; set data5; if PregnantYN in ("No","Not applicable","Unknown","") then Pregnant = 0; else if PregnantYN = "Yes" then Pregnant = 1; if 0<=BMI<=18.50 then BodyMassIndex=0; else if 18.51<=BMI<=25.00 then BodyMassIndex=1; else if 25.01<=BMI<=30.00 then BodyMassIndex=2; else if BMI>30.01 then BodyMassIndex=3; if 18<=PatientAge<=65 then Age=0; else if 66<=PatientAge<=75 then Age=1; else if PatientAge>75 then Age=2; if BasalInsulin='Yes' OR ShortActingInsulin='Yes' OR PremixInsulin='Yes' then Insulin=1; if BasalInsulin='No' AND ShortActingInsulin='No' AND PremixInsulin='No' then Insulin=0; if OnSulfonylurea='Yes' then Sulfonylurea=1; else Sulfonylurea=0; if On_Prandin='Yes' then Prandin=1; else Prandin=0; if On_Empagliflozin='Yes' OR On_Dapagliflozin='Yes' then SGLT2=1; if On_Empagliflozin='No' AND On_Dapagliflozin='No' then SGLT2=0; if On_Metformin='Yes' then Metformin=1; else Metformin=0; if On_Sitagliptin='Yes' then DPP4=1; else DPP4=0; run; /*Correct messy date columns*/ data data5(drop= ErtapenemStartDate BactrimStartDate LinezolidStartDate PiperacillinStartDate CephalexinStartDate MeropenemStartDate ClindamycinStartDate AmoxicillinStartDate CeftriaxoneStartDate AzithromycinStartDate LevofloxacinStartDate CiprofloxacinStartDate VancomycinStartDate MetronidazoleStartDate AmpicillinStartDate CefepimeStartDate UnasynStartDate GentamicinStartDate CefazolinStartDate DaptomycinStartDate); set data5; if ErtapenemStartDate ne "" and length(strip(ErtapenemStartDate)) < 10 then x1 = input(ErtapenemStartDate, best.); if BactrimStartDate ne "" and length(strip(BactrimStartDate)) < 10 then x2 = input(BactrimStartDate, best.); if LinezolidStartDate ne "" and length(strip(LinezolidStartDate)) < 10 then x3 = input(LinezolidStartDate, best.); if PiperacillinStartDate ne "" and length(strip(PiperacillinStartDate)) < 10 then x4 = input(PiperacillinStartDate, best.); if CephalexinStartDate ne "" and length(strip(CephalexinStartDate)) < 10 then x5 = input(CephalexinStartDate, best.); if MeropenemStartDate ne "" and length(strip(MeropenemStartDate)) < 10 then x6 = input(MeropenemStartDate, best.); if ClindamycinStartDate ne "" and length(strip(ClindamycinStartDate)) < 10 then x7 = input(ClindamycinStartDate, best.); if AmoxicillinStartDate ne "" and length(strip(AmoxicillinStartDate)) < 10 then x8 = input(AmoxicillinStartDate, best.); if CeftriaxoneStartDate ne "" and length(strip(CeftriaxoneStartDate)) < 10 then x9 = input(CeftriaxoneStartDate, best.); if AzithromycinStartDate ne "" and length(strip(AzithromycinStartDate)) < 10 then x10 = input(AzithromycinStartDate, best.); if LevofloxacinStartDate ne "" and length(strip(LevofloxacinStartDate)) < 10 then x11 = input(LevofloxacinStartDate, best.); if CiprofloxacinStartDate ne "" and length(strip(CiprofloxacinStartDate)) < 10 then x12 = input(CiprofloxacinStartDate, best.); if VancomycinStartDate ne "" and length(strip(VancomycinStartDate)) < 10 then x13 = input(VancomycinStartDate, best.); if MetronidazoleStartDate ne "" and length(strip(MetronidazoleStartDate)) < 10 then x14 = input(MetronidazoleStartDate, best.); if AmpicillinStartDate ne "" and length(strip(AmpicillinStartDate)) < 10 then x15 = input(AmpicillinStartDate, best.); if CefepimeStartDate ne "" and length(strip(CefepimeStartDate)) < 10 then x16 = input(CefepimeStartDate, best.); if UnasynStartDate ne "" and length(strip(UnasynStartDate)) < 10 then x17 = input(UnasynStartDate, best.); if GentamicinStartDate ne "" and length(strip(GentamicinStartDate)) < 10 then x18 = input(GentamicinStartDate, best.); if CefazolinStartDate ne "" and length(strip(CefazolinStartDate)) < 10 then x19 = input(CefazolinStartDate, best.); if DaptomycinStartDate ne "" and length(strip(DaptomycinStartDate)) < 10 then x20 = input(DaptomycinStartDate, best.); run; data data5; set data5; rename x1 = ErtapenemStartDate x2 = BactrimStartDate x3 = LinezolidStartDate x4 = PiperacillinStartDate x5 = CephalexinStartDate x6 = MeropenemStartDate x7 = ClindamycinStartDate x8 = AmoxicillinStartDate x9 = CeftriaxoneStartDate x10 = AzithromycinStartDate x11 = LevofloxacinStartDate x12 = CiprofloxacinStartDate x13 = VancomycinStartDate x14 = MetronidazoleStartDate x15 = AmpicillinStartDate x16 = CefepimeStartDate x17 = UnasynStartDate x18 = GentamicinStartDate x19 = CefazolinStartDate x20 = DaptomycinStartDate; run; /*Create dummy variables based on these date columns*/ data data5; set data5; array dates{20} BactrimStartDate ErtapenemStartDate LinezolidStartDate PiperacillinStartDate CephalexinStartDate MeropenemStartDate ClindamycinStartDate AmoxicillinStartDate CeftriaxoneStartDate AzithromycinStartDate LevofloxacinStartDate CiprofloxacinStartDate VancomycinStartDate MetronidazoleStartDate AmpicillinStartDate CefepimeStartDate UnasynStartDate GentamicinStartDate CefazolinStartDate DaptomycinStartDate; array dummy{20} Bactrim Ertapenem Linezolid Piperacillin Cephalexin Meropenem Clindamycin Amoxicillin Ceftriaxone Azithromycin Levofloxacin Ciprofloxacin Vancomycin Metronidazole Ampicillin Cefepime Unasyn Gentamicin Cefazolin Daptomycin; do i = 1 to dim(dates); if .< dates{i} < dayofhospital then dummy{i} = 1; else dummy{i} = 0; end; if find(On_antibiotic, 'Doxycycline')>0 then Doxycycline=1; else Doxycycline=0; run; data data5; set data5; if 0<=GlucoseValue<=69 then Hypoglycemia=1; else if glucoseValue=> 70 then Hypoglycemia=0; if 55<=GlucoseValue<=69 then ClassHypoglycemia=1; else if 0<=glucoseValue<=54 then ClassHypoglycemia=2; else if Glucosevalue=>70 then ClassHypoglycemia=0; run; data data5; set data5; array cols{20} Bactrim Ertapenem Linezolid Piperacillin Cephalexin Meropenem Clindamycin Amoxicillin Ceftriaxone Azithromycin Levofloxacin Ciprofloxacin Vancomycin Metronidazole Ampicillin Cefepime Unasyn Gentamicin Cefazolin Daptomycin; do i=1 to dim(cols); if cols{i} = 1 or Doxycycline = 1 then Antiibiotic = 1; else if cols{i} = 0 then Antiibiotic = 0; end; Run; data data5; set data5; if TubeFeed='Yes' then TF=1; else TF=0; if Regular='Yes' then Diet=1; else Diet=0; if Bactrim=1 OR Amoxicillin=1 OR Cephalexin=1 then OralAntibiotic=1; else OralAntibiotic=0; run; data data5; set data5; if Metronidazole=1 then nitroimidazole=1; else nitroimidazole=0; if Levofloxacin=1 OR Ciprofloxacin=1 then Floroquinolone=1; else Floroquinolone=0; if Clindamycin=1 then Lincosamide=1; else Lincosamide=0; if Doxycycline=1 then Tetracycline=1; else Tetracycline=0; if Vancomycin=1 then Glycopeptide=1; else Glycopeptide=0; if Daptomycin=1 then Lipopeptide=1; else lipopeptide=0; if Azithromycin=1 then Macrolide=1; else Macrolide=0; if Bactrim=1 then Sulfonamides=1; else Sulfonamides=0; if Gentamicin=1 then Aminoglycosides=1; else Aminoglycosides=0; if Cephalexin=1 OR Ceftriaxone=1 OR Cefepime=1 OR Cefazolin=1 OR Cefepime=1 then Cephalosporin=1; else Cephalosporin=0; if Piperacillin=1 OR Amoxicillin=1 OR Ampicillin=1 OR Unasyn=1 then Penicillin=1; else if Piperacillin=0 OR Amoxicillin=0 OR Ampicillin=0 OR Unasyn=0 then Penicillin=0; if Ertapenem=1 OR Meropenem=1 then Carbapenem=1; else Carbapenem=0; run; proc freq data=data5; tables hypoglycemia*Antiibiotic; run; data data5; set data5; where Pneumonia in ("No","Yes"); run; proc logistic data= data5 descending; class race (ref="0") RenalDisease (ref="No") HistoryOfDiabetes (ref="No") SGLT2 (ref="0") BodyMassIndex (ref="0") sex (ref="0") Insulin (ref="0") Prandin (ref="0") Metformin (ref="0") Sulfonylurea (ref="0") Diet (ref="0") TPN (ref="No") Age (ref="0") sepsis (ref="No") Pneumonia (ref="No") UTI (ref="No") Cellulitis (Ref="No"); Model hypoglycemia=antiibiotic race sex BodymassIndex DayofHospital HistoryofDiabetes RenalDisease Insulin Prandin Metformin SGLT2 Sulfonylurea Diet TPN Age Sepsis Pneumonia UTI Cellulitis; run;
... View more