hello experts,
I need a help to solve a query. I have a dataset and column called NAME but this column Name has some kind of encoding data like .
I want to check which row has encoding data of ASC value which is falling between 161 to 255.
Suppose if you below code and data , so it should check each observation each string and identify the each string ASC value and if any ASC value in observation is falling between 161 to 255, then a new column RANK_VALUE should give result of ASC Value,
if no value from 161 to 255, then null should pass.
data test;
input name $32.;
datalines;
RÃm
John
èra
©kumara
¶cris
;
run;
output :
Name Rank_value
RÃm 195
John
èra 232
©kumara 169
¶cris 182
And have you tried the rank procedure:
http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212189.htm
Random words, ahve no idea.
Functions work anywhere in arrays, or loops, anywhere in datastep. Provide test data in the form of a datastep, show what the output should look like, explain the logic between the two.
data test; input name $32.; do i=1 to lengthn(name); rank_value=rank(char(name,i)); output; end; datalines; RÃm John èra ©kumara ¶cris ; run;
That might not actually do what you want however, try it out. Some other possiblities:
http://www.sascommunity.org/planet/blog/category/rank/
29May example, shows compress removing specials, but you could reverse it with:
data want; set have; if lengthn(compress(name," ","ad"))>0 then result="special character"; run;
So remove the alaph and numerics then if the lengthn is greater than 0 you know you have odd characters.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.