## Make a unique observation in one row

Solved
Occasional Contributor
Posts: 11

# Make a unique observation in one row

[ Edited ]

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?

Accepted Solutions
Solution
‎12-20-2017 01:48 PM
Super User
Posts: 23,700

## Re: Make a unique observation in one row

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?

All Replies
Solution
‎12-20-2017 01:48 PM
Super User
Posts: 23,700

## Re: Make a unique observation in one row

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?

☑ This topic is solved.