- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
HI everyone! I've been able to return the first two words of a string and create a third variable with both concatenated. However, I also want to include special characters that could be included in the words within the string.
Here is the code I have so far. If you notice, the last two lines do not return the special characters within the word and need to do so as such:
Appreciate any help on this 😃
data input;
input str $60.;
datalines;
BLUE
BLUE BLACK
BLUE GREY BROWN
BLUE GREEN RED
BLUE RED YELLOW ORANGE
BLUE$ YELLOW
BLUE/ ORANGE GRAY
;
run;
data test;
set input;
w1 = scan(str, 1);
w2 = scan(str, 2);
length w3 $ 30;
SubStrLength=findc(str, ' ',-length(str));
if SubStrLength=0 then w3=w1;
else w3=trim(catx(' ', w1, w2));
drop SubStrLength;
run;
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The below will give you the right split with the spl char. I am sure you can do the concat work yourself as you seem smart.
data input;
input str $60.;
datalines;
BLUE
BLUE BLACK
BLUE GREY BROWN
BLUE GREEN RED
BLUE RED YELLOW ORANGE
BLUE$ YELLOW
BLUE/ ORANGE GRAY
;
run;
data test;
set input;
w1 = scan(str, 1,' ','m');
w2 = scan(str, 2,' ','m');run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The below will give you the right split with the spl char. I am sure you can do the concat work yourself as you seem smart.
data input;
input str $60.;
datalines;
BLUE
BLUE BLACK
BLUE GREY BROWN
BLUE GREEN RED
BLUE RED YELLOW ORANGE
BLUE$ YELLOW
BLUE/ ORANGE GRAY
;
run;
data test;
set input;
w1 = scan(str, 1,' ','m');
w2 = scan(str, 2,' ','m');run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content