I have data set:
PX BMI SMOKE
Patient_1 YES NO
Patient_1 NO YES
And I want:
PX BMI SMOKE
Patient_1 YES YES
Is there a way to make Patient_1 in just one row instead of having multiple rows?
Is it only Yes/No that you're comparing, or are there other variables that may have other ranges?
If it's Yes/No you can use SQL and MAX function. This will work because Yes is alphabetically after No. If you have other values you'll need a different approach.
proc sql;
create table want as
select px, max(bmi) as bmi, max(smoke) as smoke
from have
group by px;
quit;
@jcapua2 wrote:
I have data set:
PX BMI SMOKE
Patient_1 YES NO
Patient_1 NO YES
And I want:
PX BMI SMOKE
Patient_1 YES YES
Is there a way to make Patient_1 in just one row that having multiple rows?
Is it only Yes/No that you're comparing, or are there other variables that may have other ranges?
If it's Yes/No you can use SQL and MAX function. This will work because Yes is alphabetically after No. If you have other values you'll need a different approach.
proc sql;
create table want as
select px, max(bmi) as bmi, max(smoke) as smoke
from have
group by px;
quit;
@jcapua2 wrote:
I have data set:
PX BMI SMOKE
Patient_1 YES NO
Patient_1 NO YES
And I want:
PX BMI SMOKE
Patient_1 YES YES
Is there a way to make Patient_1 in just one row that having multiple rows?
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.
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.