<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Convert obser​vation to ASCII in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276440#M55379</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to write a script to sum all ascii values by the column on SAS dataset and a script sample like follows.&lt;/P&gt;&lt;P&gt;Actually, the script can be&amp;nbsp;run normally with generate result successfully.&lt;/P&gt;&lt;P&gt;But I face a problem that the performance is very slow&amp;nbsp;if the number of selections are over milliion.&lt;/P&gt;&lt;P&gt;Could some one help me to settle the performance issue? Many thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro sqlloop;&lt;BR /&gt;%LET numrecords&amp;nbsp; = 0;&lt;BR /&gt;&amp;nbsp;PROC SQL&amp;nbsp; noprint;&lt;BR /&gt;select count(*) into :numrecords&lt;BR /&gt;from test.convertsac where&amp;nbsp; flag='Y' and tab_name like 'TB_%%';&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%if &amp;amp;numrecords&amp;gt;0 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;PROC SQL&amp;nbsp; noprint outobs=&amp;amp;numrecords;&lt;BR /&gt;select tab_name, col_name&lt;BR /&gt;into :tab1 - :tab%left(&amp;amp;numrecords), :col1 - :col%left(&amp;amp;numrecords)&lt;BR /&gt;from&amp;nbsp; test.convertsac where flag='Y' and tab_name like 'TB_%';&lt;/P&gt;&lt;P&gt;%DO x=1 %TO &amp;amp;numrecords;&lt;BR /&gt;%let tbname&amp;nbsp; = &amp;amp;&amp;amp;tab&amp;amp;x ;&lt;BR /&gt;%let colname&amp;nbsp; = &amp;amp;&amp;amp;col&amp;amp;x ;&lt;BR /&gt;select count(*) into :numobs&lt;BR /&gt;from test.&amp;amp;tbname where &amp;amp;colname is not null;&lt;BR /&gt;quit;&lt;BR /&gt;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname&amp;nbsp;&amp;nbsp; =======START========;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%LET totalasc&amp;nbsp; = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%if &amp;amp;numobs&amp;gt;0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PROC SQL&amp;nbsp; noprint outobs=&amp;amp;numobs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select &amp;amp;colname&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;into :tmp1 - :tmp%left(&amp;amp;numobs)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;from test.&amp;amp;tbname&amp;nbsp; where &amp;amp;colname is not null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%DO k=1 %TO &amp;amp;numobs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET STRING= %sysfunc(TRIM(&amp;amp;&amp;amp;tmp&amp;amp;k));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET ascsum = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do i = 1 %to %length(&amp;amp;STRING);&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ischara=%substr(&amp;amp;STRING,&amp;amp;i,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ischara=%str(&amp;amp;ischara);&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let asc =%sysfunc(rank(%bquote(&amp;amp;ischara)));&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if &amp;amp;asc=0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let asc =32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ascsum=%eval(&amp;amp;ascsum + &amp;amp;asc) ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET totalasc=%eval(&amp;amp;totalasc + &amp;amp;ascsum) ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;%END;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname &amp;amp;totalasc&amp;nbsp; =======END======== PROGRESS= &amp;amp;x&amp;nbsp; / &amp;amp;numrecords;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else&amp;nbsp; %do;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname &amp;amp;totalasc&amp;nbsp;&amp;nbsp; =======END======== PROGRESS= &amp;amp;x&amp;nbsp; / &amp;amp;numrecords;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;PROC SQL noprint;&lt;BR /&gt;update test.convertsac&lt;BR /&gt;set ascii=&amp;amp;totalasc, flag='N'&lt;BR /&gt;where tab_name ="&amp;amp;&amp;amp;tbname" and col_name="&amp;amp;&amp;amp;colname";&lt;BR /&gt;%END;&lt;BR /&gt;%END;&lt;BR /&gt;&amp;nbsp;QUIT;&lt;BR /&gt;&amp;nbsp;%mend;&lt;BR /&gt;&amp;nbsp;%sqlloop;&lt;/P&gt;</description>
    <pubDate>Fri, 10 Jun 2016 08:36:52 GMT</pubDate>
    <dc:creator>Jeff_TH</dc:creator>
    <dc:date>2016-06-10T08:36:52Z</dc:date>
    <item>
      <title>Convert obser​vation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276440#M55379</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to write a script to sum all ascii values by the column on SAS dataset and a script sample like follows.&lt;/P&gt;&lt;P&gt;Actually, the script can be&amp;nbsp;run normally with generate result successfully.&lt;/P&gt;&lt;P&gt;But I face a problem that the performance is very slow&amp;nbsp;if the number of selections are over milliion.&lt;/P&gt;&lt;P&gt;Could some one help me to settle the performance issue? Many thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro sqlloop;&lt;BR /&gt;%LET numrecords&amp;nbsp; = 0;&lt;BR /&gt;&amp;nbsp;PROC SQL&amp;nbsp; noprint;&lt;BR /&gt;select count(*) into :numrecords&lt;BR /&gt;from test.convertsac where&amp;nbsp; flag='Y' and tab_name like 'TB_%%';&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%if &amp;amp;numrecords&amp;gt;0 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;PROC SQL&amp;nbsp; noprint outobs=&amp;amp;numrecords;&lt;BR /&gt;select tab_name, col_name&lt;BR /&gt;into :tab1 - :tab%left(&amp;amp;numrecords), :col1 - :col%left(&amp;amp;numrecords)&lt;BR /&gt;from&amp;nbsp; test.convertsac where flag='Y' and tab_name like 'TB_%';&lt;/P&gt;&lt;P&gt;%DO x=1 %TO &amp;amp;numrecords;&lt;BR /&gt;%let tbname&amp;nbsp; = &amp;amp;&amp;amp;tab&amp;amp;x ;&lt;BR /&gt;%let colname&amp;nbsp; = &amp;amp;&amp;amp;col&amp;amp;x ;&lt;BR /&gt;select count(*) into :numobs&lt;BR /&gt;from test.&amp;amp;tbname where &amp;amp;colname is not null;&lt;BR /&gt;quit;&lt;BR /&gt;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname&amp;nbsp;&amp;nbsp; =======START========;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%LET totalasc&amp;nbsp; = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;%if &amp;amp;numobs&amp;gt;0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PROC SQL&amp;nbsp; noprint outobs=&amp;amp;numobs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select &amp;amp;colname&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;into :tmp1 - :tmp%left(&amp;amp;numobs)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;from test.&amp;amp;tbname&amp;nbsp; where &amp;amp;colname is not null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%DO k=1 %TO &amp;amp;numobs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET STRING= %sysfunc(TRIM(&amp;amp;&amp;amp;tmp&amp;amp;k));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET ascsum = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%do i = 1 %to %length(&amp;amp;STRING);&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ischara=%substr(&amp;amp;STRING,&amp;amp;i,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ischara=%str(&amp;amp;ischara);&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let asc =%sysfunc(rank(%bquote(&amp;amp;ischara)));&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if &amp;amp;asc=0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let asc =32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%let ascsum=%eval(&amp;amp;ascsum + &amp;amp;asc) ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%LET totalasc=%eval(&amp;amp;totalasc + &amp;amp;ascsum) ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;%END;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname &amp;amp;totalasc&amp;nbsp; =======END======== PROGRESS= &amp;amp;x&amp;nbsp; / &amp;amp;numrecords;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;%end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else&amp;nbsp; %do;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;%PUT &amp;amp;tbname &amp;amp;colname &amp;amp;totalasc&amp;nbsp;&amp;nbsp; =======END======== PROGRESS= &amp;amp;x&amp;nbsp; / &amp;amp;numrecords;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;PROC SQL noprint;&lt;BR /&gt;update test.convertsac&lt;BR /&gt;set ascii=&amp;amp;totalasc, flag='N'&lt;BR /&gt;where tab_name ="&amp;amp;&amp;amp;tbname" and col_name="&amp;amp;&amp;amp;colname";&lt;BR /&gt;%END;&lt;BR /&gt;%END;&lt;BR /&gt;&amp;nbsp;QUIT;&lt;BR /&gt;&amp;nbsp;%mend;&lt;BR /&gt;&amp;nbsp;%sqlloop;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2016 08:36:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276440#M55379</guid>
      <dc:creator>Jeff_TH</dc:creator>
      <dc:date>2016-06-10T08:36:52Z</dc:date>
    </item>
    <item>
      <title>Re: Convert obser​vation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276443#M55380</link>
      <description>&lt;P&gt;At first glance, this looks like another monstrous abuse of the macro language.&lt;/P&gt;
&lt;P&gt;The SAS macro language is for creating dynamic program code, not for solving data issues. That is best done in SAS data step language.&lt;/P&gt;
&lt;P&gt;Aside from the piss-poor performance, you get an honorable mention for the Obfuscated SAS Code Contest.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since it is very hard to extract your intentions from the code, could you rephrase your original requirement?&lt;/P&gt;
&lt;P&gt;Do you want to add up all the ASCII character values in the strings of a given dataset (or a number of datasets)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can get all dataset metadata from SASHELP.VTABLE and SASHELP.VCOLUMN (or DICTIONARY.TABLES and DICTIONARY.COLUMNS in SQL)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2016 08:55:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276443#M55380</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-06-10T08:55:49Z</dc:date>
    </item>
    <item>
      <title>Re: Convert obser​vation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276447#M55381</link>
      <description>&lt;P&gt;Could you not use one of the procedures designed for the purpose - proc means, summary, freq? &amp;nbsp;Not entirely sure I know what you mean by "&lt;SPAN&gt;sum all ascii values", is this character fields with numbers in - if so then use input() to read in the character and convert to numeric, if they are numerics then you wouldn't even need to convert. &amp;nbsp;Post example test data (in the form of a datastep) and what the output should look like.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2016 09:02:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276447#M55381</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-06-10T09:02:43Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276488#M55391</link>
      <description>Hi KurtBremser,&lt;BR /&gt;&lt;BR /&gt;Thanks for the reply&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Do you want to add up all the ASCII character values in the strings of a given dataset&lt;BR /&gt;&lt;BR /&gt;Yes, I just want to add up all the ASCII character values in the strings of a given dataset.&lt;BR /&gt;&lt;BR /&gt;Do you have any idea on it?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 10 Jun 2016 13:23:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276488#M55391</guid>
      <dc:creator>Jeff_TH</dc:creator>
      <dc:date>2016-06-10T13:23:06Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276492#M55393</link>
      <description>&lt;P&gt;So you have to convert, in which case:&lt;/P&gt;
&lt;PRE&gt;data have;
  abc="a"; def="h"; output;
  abc="d"; def="z"; output;
run;
data _null_;
  set have (obs=1);
  array vals _character_;
  call execute('data converted; set have;');
  do over vals;
    call execute(cats(vname(vals),"_n=rank(",vname(vals),");"));
  end;
  call execute(';run;');
run;
proc summary data=converted;&lt;BR /&gt; var _numeric_;&lt;BR /&gt; output out=results sum=;&lt;BR /&gt;run;&lt;/PRE&gt;</description>
      <pubDate>Fri, 10 Jun 2016 13:35:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276492#M55393</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-06-10T13:35:54Z</dc:date>
    </item>
    <item>
      <title>Re: Convert obser​vation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276497#M55397</link>
      <description>Dear RW9,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Many thanks for your reply!&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Basically, I just want to convert all string data values to ASCII values and add up all of them.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;For example I have a dataset as below:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;ABC&lt;BR /&gt;&lt;BR /&gt;AD&lt;BR /&gt;&lt;BR /&gt;ZY&lt;BR /&gt;&lt;BR /&gt;X$M&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I expect the SAS program can output value is: 711&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 10 Jun 2016 13:45:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276497#M55397</guid>
      <dc:creator>Jeff_TH</dc:creator>
      <dc:date>2016-06-10T13:45:06Z</dc:date>
    </item>
    <item>
      <title>Re: Convert obser​vation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276504#M55400</link>
      <description>&lt;P&gt;Thats even easier then - my program posted before assumed multiple values, this one assumes just the on per your example:&lt;/P&gt;
&lt;PRE&gt;data have;
  val="ABC"; output;
  val="AD"; output;
  val="ZY"; output;
  val="X$M"; output;
run;

data want;
  set have end=last;
  if _n_=1 then result=0;
  retain result;
  do i=1 to lengthn(val);
    result=sum(result,rank(char(val,i)));
  end;
  if last;
run;&lt;/PRE&gt;</description>
      <pubDate>Fri, 10 Jun 2016 13:59:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276504#M55400</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-06-10T13:59:44Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276506#M55401</link>
      <description>Dear RW9,&lt;BR /&gt;&lt;BR /&gt;You are wonderful, many thanks for your prompt action!!&lt;BR /&gt;&lt;BR /&gt;Have a good day!&lt;BR /&gt;</description>
      <pubDate>Fri, 10 Jun 2016 14:04:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/276506#M55401</guid>
      <dc:creator>Jeff_TH</dc:creator>
      <dc:date>2016-06-10T14:04:06Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observation to ASCII</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/277150#M55602</link>
      <description>Dear RW9,&lt;BR /&gt;&lt;BR /&gt;Many thanks! You are wonderful!&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 14 Jun 2016 08:09:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convert-obser-vation-to-ASCII/m-p/277150#M55602</guid>
      <dc:creator>Jeff_TH</dc:creator>
      <dc:date>2016-06-14T08:09:06Z</dc:date>
    </item>
  </channel>
</rss>

