I am running PROC Ttest withe following code:
PROC IMPORT DATAFILE=FILEREF
DBMS=XLSX
OUT=WORK.IMPORT;
GETNAMES=YES;
RUN;
data AllEvents;
set import;
RUN;
if Phase=1;
logVWC=log(VWC);
proc ttest cochran ci=equal umpu;
Class Phase;
Var logVWC;
run;
SAS gives me the following error message: ERROR: The CLASS variable does not have two levels.
In the Excel file that is imported in the first statement, Phase variables are 1 and 2, so it definitely has 2 and only 2 levels.
any insights would be appreciated
@AaronJ wrote:
I am running PROC Ttest withe following code:
PROC IMPORT DATAFILE=FILEREF
DBMS=XLSX
OUT=WORK.IMPORT;
GETNAMES=YES;
RUN;
data AllEvents;
set import;RUN;
if Phase=1;
logVWC=log(VWC);proc ttest cochran ci=equal umpu;
Class Phase;
Var logVWC;
run;
SAS gives me the following error message: ERROR: The CLASS variable does not have two levels.
In the Excel file that is imported in the first statement, Phase variables are 1 and 2, so it definitely has 2 and only 2 levels.
any insights would be appreciated
SAS doesn't care about the Excel file that is imported. SAS only cares about WORK.ALLEVENTS. What is in WORK.ALLEVENTS, how many levels does PHASE have in WORK.ALLEVENTS?
Well, I think I know the answer because in your code you have
if Phase=1;
which means that the variable PHASE in WORK.ALLEVENTS has only one level ... it only has PHASE=1
thanks, i think you and i caught that at the same time. I tried to delete this post, but SAS told me i didn't have sufficient privileges.
Again, thanks for pointing out the error.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.