DATA Step, Macro, Functions and more

Array problem

Reply
SAS Employee
Posts: 105

Array problem

Does someone can help me with this?
The first example I want to get aqqq 30qqq ageqqq sexqqq , i dont get it !!!!
but when im doing it in the oposite way i get what i want.
Does someone Knows whats my problem.

/*not working*/
data a;
input Class $ Age $ Sex $ ;
cards;
a 30 m y
b 60 y n
;
run;
data b;
set a;
array test Class Age Sex ;
do over test;
test=test||'qqqqqq';
end;
run;



/*works well*/

data a;
input Class $ Age $ Sex $ ;
cards;
a 30 m y
b 60 y n
;
run;
data b;
set a;
array test Class Age Sex ;
do over test;
test='qqqqqq'||test;
end;
run;
Super Contributor
Super Contributor
Posts: 3,174

Re: Array problem

In your "not working" process, you are attempting to concatenate a data string to the end of a SAS variable. The concatenation operation does not trim trailing blanks, so your resulting SAS variable (after the array processing) has been truncated.

For what you are trying to accomplish, you must use a function to accomplish the trim, such as CATT (new with SAS 9, or TRIM -- there are others as well).

Also, if you were to add a PUT _ALL_ to your DO/END processing after the assignment, you might have some additional diagnostic information to see the execution as it is processing.

Scott Barry
SBBWorks, Inc.
SAS Employee
Posts: 105

Re: Array problem

I got it thanks for your help!!
Ask a Question
Discussion stats
  • 2 replies
  • 108 views
  • 0 likes
  • 2 in conversation