BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
DmytroYermak
Lapis Lazuli | Level 10

Hi all,

 

Please advise how to manage the following case. I have to select the values FLAG1 and FLAG2 from the first line of the group and FLAG3 and IDENT from the last line. Could you please advise a compact algorythm? The sample code is attached.

 

Thank you! 

 

1.jpg

 

 

data test;
	infile datalines dlm='/';
	input FLAG1 : $1. FLAG2 : $1. FLAG3 : $1. IDENT : $7.;
datalines;
Y	/	N	/		/	ABC-101
N	/	N	/		/	ABC-101
N	/	N	/	Y	/	ABC-101
Y	/	N	/		/	ABC-102
N	/	N	/		/	ABC-102
N	/	N	/		/	ABC-102
N	/	N	/		/	ABC-102
N	/	N	/		/	ABC-103
N	/	N	/		/	ABC-103
N	/	N	/		/	ABC-103
N	/	N	/	N	/	ABC-103

;
run;

 

1 ACCEPTED SOLUTION

Accepted Solutions
gamotte
Rhodochrosite | Level 12

Hello,

 

data want;
	set test;
	by IDENT;
	array FLAGS(2) $1. _TEMPORARY_;

	if first.IDENT then do;
		FLAGS(1)=FLAG1;
		FLAGS(2)=FLAG2;
	end;

	if last.IDENT then do;
		FLAG1=FLAGS(1);
		FLAG2=FLAGS(2);
		output;
	end;
run;

View solution in original post

2 REPLIES 2
gamotte
Rhodochrosite | Level 12

Hello,

 

data want;
	set test;
	by IDENT;
	array FLAGS(2) $1. _TEMPORARY_;

	if first.IDENT then do;
		FLAGS(1)=FLAG1;
		FLAGS(2)=FLAG2;
	end;

	if last.IDENT then do;
		FLAG1=FLAGS(1);
		FLAG2=FLAGS(2);
		output;
	end;
run;
DmytroYermak
Lapis Lazuli | Level 10
It has worked! Thank you very much!
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
  • 2 replies
  • 1070 views
  • 0 likes
  • 2 in conversation