BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
nataliavanessa0
Calcite | Level 5

Hello ,

 

I am trying to create one variable (type2) from multiple rows per ID using variable type. I want to covert a table like this one:

ID

type

1

A

1

A

1

B

2

A

2

A

3

B

3

B

3

B

 

To:

ID

type2

1

C

2

A

3

B

 

Where type2 is:  

If type is always A then type2=A;

If type is always B then type2=B;

If type is a combination of A and B then type2=C;

 

Thanks

 

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
data have;
input ID
type $;
cards;
1
A
1
A
1
B
2
A
2
A
3
B
3
B
3
B
;
proc sql;
create table want as
select id,case 
when sum(type='A')=count(type) then 'A' 
when sum(type='B')=count(type) then 'B'
when sum(type='A') ne 0 and sum(type='B') ne 0 then 'C'
else ' ' end as type2
 from have 
  group by id;
quit;

View solution in original post

1 REPLY 1
Ksharp
Super User
data have;
input ID
type $;
cards;
1
A
1
A
1
B
2
A
2
A
3
B
3
B
3
B
;
proc sql;
create table want as
select id,case 
when sum(type='A')=count(type) then 'A' 
when sum(type='B')=count(type) then 'B'
when sum(type='A') ne 0 and sum(type='B') ne 0 then 'C'
else ' ' end as type2
 from have 
  group by id;
quit;
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 761 views
  • 1 like
  • 2 in conversation