Duplicate line

Solved
Occasional Contributor
Posts: 13

Duplicate line

Hi,

Hope that someone will help.

I've a dataset

Table entry
N_CRE RISK
5031500EUR ART127-b
5031500EUR ART127-c
00002063356EUR ART127-b
00002063356EUR ART127-d
and below the desire output
N_CRE RISK
5031500EUR ART127-b;ART127-c
00002063356EUR ART127-b;ART127-d
Please could you tell me how to do with SAS? Thanks

Accepted Solutions
Solution
‎12-04-2017 10:38 AM
PROC Star
Posts: 1,400

Re: Duplicate line

``````data have;
length N_CRE RISK \$20;
input N_CRE\$ RISK\$;
datalines;
5031500EUR ART127-b
5031500EUR ART127-c
00002063356EUR ART127-b
00002063356EUR ART127-d
;

proc sort data=have;
by N_CRE;
run;

data want(keep=n_cre temp rename=(temp=RISK));
set have;
length temp \$200;
by N_CRE;
if first.N_CRE then temp=RISK;
else temp = cats(temp,';', RISK);

if last.N_CRE;
retain temp;
run;``````

All Replies
Super User
Posts: 9,840

Re: Duplicate line

Post test data as a datastep using the code window (its the {i} above post), as such I am not typing it out so just a guess:

```data want (drop=_risk);
set have (rename=(risk=_risk));
length risk \$2000;
retain risk;
by n_cre;
if first.n_cre then risk=_risk;
else risk=catx(',',risk,_risk);
if last.n_cre then output;
run;```
Solution
‎12-04-2017 10:38 AM
PROC Star
Posts: 1,400

Re: Duplicate line

``````data have;
length N_CRE RISK \$20;
input N_CRE\$ RISK\$;
datalines;
5031500EUR ART127-b
5031500EUR ART127-c
00002063356EUR ART127-b
00002063356EUR ART127-d
;

proc sort data=have;
by N_CRE;
run;

data want(keep=n_cre temp rename=(temp=RISK));
set have;
length temp \$200;
by N_CRE;
if first.N_CRE then temp=RISK;
else temp = cats(temp,';', RISK);

if last.N_CRE;
retain temp;
run;``````
Occasional Contributor
Posts: 13

Re: Duplicate line

Thanks a lot.

What i've done is a:

``````proc sort data=have;
by N_Cre;
run;
proc transpose data=have out=classe_risk1 (drop = _NAME_);
by  N_Cre;
var RISK;
run;
data classe_risk2;
set classe_risk1;
COL_FI = catx(';', of COL1-COL3);
run;``````
☑ This topic is solved.