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.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.