Hi all,
I am a new SAS user and would like to seek your advice on this error; when i tried running a summary statistics with various variables like Age and Progestrone
This is my code:
libname mc '/folders/myfolders/research';
proc import out= mc.complieddata datafile= "/folders/myfolders/Research/Master List 07062020 SAS.xlsx"
DBMS=xlsx Replace; SHEET="Data Complied From Both Studies";
GETNAMES=YES;
RUN;
data import; set research.import;
if Preg_Group in ('Miscarriage' 'Normal');
if BMI >28 then BMI_cat = 'BMI >28 ';
else if 19 <= BMI < 23 then BMI_cat = '19<=BMI<23';
else BMI_cat = 'BMI Other ';
if Age <32 then Age_cat = 'Age <32 ';
else if Age >= 32 then Age_cat = 'Age >=32';
ln_Progestrone = log(Progestrone_nmol_L);
run;
title 'Cross tabulation on BMI and Age category groups';
proc freq data=import; tables BMI_cat*Preg_Group/fisher; where BMI_cat ^= 'BMI Other '; run;
proc freq data=import; tables Age_cat*Preg_Group/fisher; run;
run;
title 'Summary statistics';
proc means data=import ndec=2 n mean std median p25 p75 min max; var Age BMI Progestrone_nmol_L; run;
This was the log it generated:
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
72
73 libname mc '/folders/myfolders/research';
NOTE: Libref MC was successfully assigned as follows:
Engine: V9
Physical Name: /folders/myfolders/research
74
75 proc import out= mc.complieddata datafile= "/folders/myfolders/Research/Master List 07062020 SAS.xlsx"
76 DBMS=xlsx Replace;
76 ! SHEET="Data Complied From Both Studies";
77 GETNAMES=YES;
78 RUN;
NOTE: Variable Name Change. Preg Group -> Preg_Group
NOTE: Variable Name Change. Subject number -> Subject_number
NOTE: Variable Name Change. Progestrone nmol/L -> Progestrone_nmol_L
NOTE: Variable Name Change. Screen/Incl/Excl -> Screen_Incl_Excl
NOTE: Variable Name Change. Enrollment Date -> Enrollment_Date
NOTE: Variable Name Change. GA in weeks -> GA_in_weeks
NOTE: Variable Name Change. F/U Date 16th Wk -> F_U_Date_16th_Wk
NOTE: Variable Name Change. F/U Date 40th Wk -> F_U_Date_40th_Wk
NOTE: Variable Name Change. 16 week miscarriage -> _16_week_miscarriage
NOTE: Variable Name Change. 40 week miscarriage -> _40_week_miscarriage
NOTE: Variable Name Change. Chromosomal Aberration (Y/N) -> VAR18
NOTE: Variable Name Change. Chromosomal Aberration (Descript -> Chromosomal_Aberration__Descript
NOTE: Variable Name Change. Threatened Miscarriage (Y/N) -> VAR20
NOTE: Variable Name Change. Spontaneous Miscarriage (Y/N) -> VAR21
NOTE: Variable Name Change. IUGS & YS (Y/N) -> VAR22
NOTE: Variable Name Change. Completed? -> Completed_
NOTE: One or more variables were converted because the data type is not supported by the V9 engine. For more details, run with
options MSGLEVEL=I.
NOTE: The import data set has 170 observations and 24 variables.
NOTE: MC.COMPLIEDDATA data set was successfully created.
NOTE: PROCEDURE IMPORT used (Total process time):
real time 0.25 seconds
cpu time 0.17 seconds
79
80 data import; set research.import;
81
82 if Preg_Group in ('Miscarriage' 'Normal');
83
84 if BMI >28 then BMI_cat = 'BMI >28 ';
85 else if 19 <= BMI < 23 then BMI_cat = '19<=BMI<23';
86 else BMI_cat = 'BMI Other ';
87
88 if Age <32 then Age_cat = 'Age <32 ';
89 else if Age >= 32 then Age_cat = 'Age >=32';
90
91 ln_Progestrone = log(Progestrone_nmol_L);
92
93 run;
NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column).
84:9 85:15 91:22
NOTE: Invalid numeric data, BMI='N.A' , at line 84 column 9.
NOTE: Invalid numeric data, BMI='N.A' , at line 85 column 15.
Preg_Group=Miscarriage Subject_number=LTNP Age=37 BMI=N.A AM= PM= Progestrone_nmol_L=8 Screen_Incl_Excl=Included Enrollment_Date=.
GA_in_weeks=IUGS & YS GA=6 FP=No FH= F_U_Date_16th_Wk= F_U_Date_40th_Wk= _16_week_miscarriage=Yes _40_week_miscarriage=N.A
VAR18=Y Chromosomal_Aberration__Descript=Male profile with trisomy 16 VAR20=Y VAR21=Y VAR22=Y Completed_=Completed Remarks=
BMI_cat=BMI Other Age_cat=Age >=32 ln_Progestrone=2.0794415417 _ERROR_=1 _N_=34
NOTE: Invalid numeric data, BMI='N.A' , at line 84 column 9.
NOTE: Invalid numeric data, BMI='N.A' , at line 85 column 15.
Preg_Group=Normal Subject_number=7 Age=24 BMI=N.A AM=N.A PM=16.4 Progestrone_nmol_L=51.47 Screen_Incl_Excl=Included
Enrollment_Date=42857 GA_in_weeks=8+3 GA=8.43 FP=Yes FH=Yes F_U_Date_16th_Wk=42910 F_U_Date_40th_Wk=43077 _16_week_miscarriage=No
_40_week_miscarriage=No VAR18= Chromosomal_Aberration__Descript= VAR20=Y VAR21=N VAR22=N Completed_=Completed Remarks=
BMI_cat=BMI Other Age_cat=Age <32 ln_Progestrone=3.9409991137 _ERROR_=1 _N_=47
NOTE: There were 170 observations read from the data set RESEARCH.IMPORT.
NOTE: The data set WORK.IMPORT has 114 observations and 27 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.02 seconds
94
95 title 'Cross tabulation on BMI and Age category groups';
96 proc freq data=import; tables BMI_cat*Preg_Group/fisher; where BMI_cat ^= 'BMI Other '; run;
NOTE: There were 61 observations read from the data set WORK.IMPORT.
WHERE BMI_cat not = 'BMI Other ';
NOTE: PROCEDURE FREQ used (Total process time):
real time 0.23 seconds
cpu time 0.22 seconds
97 proc freq data=import; tables Age_cat*Preg_Group/fisher; run;
NOTE: There were 114 observations read from the data set WORK.IMPORT.
NOTE: PROCEDURE FREQ used (Total process time):
real time 0.18 seconds
cpu time 0.16 seconds
98
99
100 run;
101
102 title 'Summary statistics';
103 proc means data=import ndec=2 n mean std median p25 p75 min max; var Age BMI Progestrone_nmol_L; run;
ERROR: Variable BMI in list does not match type prescribed for this list.
ERROR: Variable Progestrone_nmol_L in list does not match type prescribed for this list.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE MEANS used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
104
105 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
117
Appreciate your advice on how to resolve the error.
Thank you 🙂
Hi! Thank you so much for pointing out the mistake! The issue was resolved when i created a new variable :)))
SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.
Find more tutorials on the SAS Users YouTube channel.