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;
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;
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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.