<?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 Re: format character variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823390#M325104</link>
    <description>&lt;P&gt;Of course, the answer is even simpler is you don't insist that you have offsite first and ordering isn't an issue.&lt;/P&gt;</description>
    <pubDate>Thu, 14 Jul 2022 18:53:45 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2022-07-14T18:53:45Z</dc:date>
    <item>
      <title>format character variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823381#M325101</link>
      <description>&lt;P&gt;I have a SAS dataset with a non formatted "visit" variable that I want to make numeric but keep the character information&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc format;&lt;BR /&gt;value $visit&lt;BR /&gt;1 ="1:offsite"&lt;BR /&gt;2 ="2:hospital"&lt;BR /&gt;3 ="3:remote"&lt;BR /&gt;.='.';&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input id 1 visit $ 2-10;&lt;BR /&gt;datalines;&lt;BR /&gt;1 hospital&lt;BR /&gt;2 offsite&lt;BR /&gt;3 hospital&lt;BR /&gt;4 remote&lt;BR /&gt;5&lt;BR /&gt;6 hospital&lt;BR /&gt;7 remote&lt;BR /&gt;8 hospital&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;if visit='offsite' then visit=1; else&lt;BR /&gt;if visit='hospital' then visit=2; else&lt;BR /&gt;if visit='remote' then visit=3; else&lt;BR /&gt;visit=.;&lt;BR /&gt;format visit $visit.;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;proc freq data=want;&lt;BR /&gt;tables visit / list ;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;output&lt;/P&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;visit&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Frequency&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Percent&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Cumulative&lt;BR /&gt;Frequency&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Cumulative&lt;BR /&gt;Percent&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;12.50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;12.50&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;12.50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;25.00&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;50.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;6&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;75.00&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;25.00&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;100.00&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instead I would like to see&lt;/P&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;visit&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Frequency&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Percent&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Cumulative&lt;BR /&gt;Frequency&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Cumulative&lt;BR /&gt;Percent&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;12.50&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;12.50&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1:offsite&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;12.50&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;25.00&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;2:hospital&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;4&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;50.00&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;6&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;75.00&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;3:remote&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;25.00&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;8&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;100.00&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will get the output I want if I do this and remove proc format - is this the only way I can do it?&lt;/P&gt;
&lt;P&gt;I would like to have visit as a numeric variable&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;length visit $&lt;STRONG&gt;10&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;if visit='offsite' then visit="1:offsite"; else&lt;/P&gt;
&lt;P&gt;if visit='hospital' then visit="2:hospital"; else&lt;/P&gt;
&lt;P&gt;if visit='remote' then visit="3:remote"; else&lt;/P&gt;
&lt;P&gt;visit=&lt;STRONG&gt;.&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;format visit $visit.;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Would appreciate any help.&lt;/P&gt;
&lt;P&gt;Margaret&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2022 18:12:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823381#M325101</guid>
      <dc:creator>urban58</dc:creator>
      <dc:date>2022-07-14T18:12:46Z</dc:date>
    </item>
    <item>
      <title>Re: format character variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823384#M325102</link>
      <description>&lt;P&gt;You can't have visit as numeric, because visit is created as character.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's also not clear why you are jumping through hoops to change variables from numeric to character and format them etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This seems a lot simpler&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc format;
value $visit
'offsite' ="1:offsite"
'hospital' ="2:hospital"
'remote' ="3:remote"
' '='.';
run;

data have;
input id 1 visit $ 2-10;
datalines;
1 hospital
2 offsite
3 hospital
4 remote
5
6 hospital
7 remote
8 hospital
;
run;

proc freq data=have order=formatted;
tables visit / list missing;
format visit $visit.;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Jul 2022 18:29:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823384#M325102</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-07-14T18:29:35Z</dc:date>
    </item>
    <item>
      <title>Re: format character variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823387#M325103</link>
      <description>It is much simpler - thank you and it works beautifully with my actual dataset.&lt;BR /&gt;Much appreciated!&lt;BR /&gt;Margaret</description>
      <pubDate>Thu, 14 Jul 2022 18:42:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823387#M325103</guid>
      <dc:creator>urban58</dc:creator>
      <dc:date>2022-07-14T18:42:41Z</dc:date>
    </item>
    <item>
      <title>Re: format character variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823390#M325104</link>
      <description>&lt;P&gt;Of course, the answer is even simpler is you don't insist that you have offsite first and ordering isn't an issue.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2022 18:53:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823390#M325104</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-07-14T18:53:45Z</dc:date>
    </item>
    <item>
      <title>Re: format character variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823391#M325105</link>
      <description>&lt;P&gt;It looks like your last step is trying to recode VIST from so that should work without any formats.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And since you have recoded VISIT then you do NOT want to use the new values with the old format.&amp;nbsp; To remove any format that might be attached to VISIT you use a FORMAT statement that lists variable(s) but no format.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   length visit $10;
   set have;
  if visit='offsite' then visit="1:offsite"; 
  else if visit='hospital' then visit="2:hospital";
  else if visit='remote' then visit="3:remote";
  else visit=.;
  format visit ;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Jul 2022 18:59:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/format-character-variable/m-p/823391#M325105</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-07-14T18:59:06Z</dc:date>
    </item>
  </channel>
</rss>

