- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 09-14-2008 02:19 AM
(1353 views)
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;
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;
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I got it thanks for your help!!