Hello,
I am working with a dataset where the Race Category was input rather oddly.
Essentially, I have 8 binary variables, Race_White, Race_Black, Race_Asian, etc.
For each variable the response is 0 if false or 1 if true.
I need to combine each of these variables into a single race category for analysis.
Essentially creating a variable of Race where 1=White, 2=Black, 3=Asian etc. from the binary variables.
So far I am striking out. it seems to me this should be an if then function but I seem to be missing something
Will the variables only be populated once? If so you could just do:
data want;
set have;
select (sum(of race_:));
when 1 then race="White";
when 2 then race=...;
...
end;
run;
If not then you would need to do each one, and cat the result:
data want;
set have;
array r{*} race_;;
do i=1 to dim(r);
if r{i}=1 then race=catx(',',race,vname(r{i});
end;
race=tranwrd(race,"race_","");
run;
It's not odd. It's done this way to account for multiple entries, ie someone can flag both White and Black, and it's also how a regression model requires the variables for analysis - with the dummy coded values of 0/1. Make sure you need to change it first.
@DanielQuay wrote:
Hello,
I am working with a dataset where the Race Category was input rather oddly.
Essentially, I have 8 binary variables, Race_White, Race_Black, Race_Asian, etc.
For each variable the response is 0 if false or 1 if true.
I need to combine each of these variables into a single race category for analysis.
Essentially creating a variable of Race where 1=White, 2=Black, 3=Asian etc. from the binary variables.
So far I am striking out. it seems to me this should be an if then function but I seem to be missing something
Thanks for the assistance, though I figured out how to do it without using an array.
The issue I was having was a simple thing in my data statement.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.