<?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: Hundreds of variables: convert character to numeric in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/492516#M72231</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;, I am working through your solution right now.&amp;nbsp; It's so elegant and as I figure out what the SAS procedures are I keep thinking, "Brilliant!"&amp;nbsp; Thank you so much for this insight.&amp;nbsp; The one part that I do not understand is the SQL part...I can't figure out what it is doing.&amp;nbsp; I took an intro SQL class so I know that it's selecting a subset from work.owf and putting them into something...but I'm a little lost!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any explanation you can provide would surely help!&amp;nbsp; Thanks again.&lt;/P&gt;</description>
    <pubDate>Wed, 05 Sep 2018 01:21:06 GMT</pubDate>
    <dc:creator>sovrappensiero</dc:creator>
    <dc:date>2018-09-05T01:21:06Z</dc:date>
    <item>
      <title>Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491444#M72165</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset with hundreds (on the order of 400-500) of indicator variables (values 1,2, or 3) that I imported from Excel (.xlsx) and they have imported as character values.&amp;nbsp; I need them to be numeric.&amp;nbsp; If relevant,&amp;nbsp;the data were transposed after importing (initial data look like mixed data type - see below for an example).&amp;nbsp; They are not all clustered together, so I cannot use something like array cha(*) var1 -- var450 ...&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any way to convert hundreds of "truly numeric" variables that are masquerading as character variables, and are scattered among legitimate character variables,&amp;nbsp;in any way that avoids me having to list all of them or convert them one-by-one?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Original data imported:&lt;/P&gt;&lt;P&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; City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City5&lt;/P&gt;&lt;P&gt;Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;&lt;P&gt;Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;&lt;P&gt;Var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After transposing:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var5&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;&lt;/P&gt;&lt;P&gt;City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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; &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;&lt;/P&gt;&lt;P&gt;City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&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;&lt;/P&gt;&lt;P&gt;City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;&lt;P&gt;City5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd love some suggestions on how to fix this!&amp;nbsp; I know how to do this easily in R, perl, bash, and other programming languages, but at the moment I am constrained to using SAS.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 21:57:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491444#M72165</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-30T21:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491453#M72166</link>
      <description>&lt;P&gt;Can you use this notation which would select all character variables between first and last variable?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;array to_convert(*) first_var -character- last_var;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a dataset with hundreds (on the order of 400-500) of indicator variables (values 1,2, or 3) that I imported from Excel (.xlsx) and they have imported as character values.&amp;nbsp; I need them to be numeric.&amp;nbsp; If relevant,&amp;nbsp;the data were transposed after importing (initial data look like mixed data type - see below for an example).&amp;nbsp; They are not all clustered together, so I cannot use something like array cha(*) var1 -- var450 ...&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there any way to convert hundreds of "truly numeric" variables that are masquerading as character variables, and are scattered among legitimate character variables,&amp;nbsp;in any way that avoids me having to list all of them or convert them one-by-one?&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Original data imported:&lt;/P&gt;
&lt;P&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; City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City5&lt;/P&gt;
&lt;P&gt;Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;
&lt;P&gt;Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;Var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After transposing:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var5&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;&lt;/P&gt;
&lt;P&gt;City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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; &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;&lt;/P&gt;
&lt;P&gt;City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&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;&lt;/P&gt;
&lt;P&gt;City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;
&lt;P&gt;City5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd love some suggestions on how to fix this!&amp;nbsp; I know how to do this easily in R, perl, bash, and other programming languages, but at the moment I am constrained to using SAS.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:07:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491453#M72166</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-08-30T22:07:19Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491455#M72167</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a dataset with hundreds (on the order of 400-500) of indicator variables (values 1,2, or 3) that I imported from Excel (.xlsx) and they have imported as character values.&amp;nbsp; I need them to be numeric.&amp;nbsp; If relevant,&amp;nbsp;the data were transposed after importing (initial data look like mixed data type - see below for an example).&amp;nbsp; They are not all clustered together, so I cannot use something like array cha(*) var1 -- var450 ...&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Easiest may be to go back to the IMPORT stage.&lt;/P&gt;
&lt;P&gt;First save the Excel file to a CSV file. (Reason: there are options available for delimited files not available for Excel).&lt;/P&gt;
&lt;P&gt;Import the CSV.&lt;/P&gt;
&lt;P&gt;If using Proc Import code then add the option GUESSINGROWS=MAX. If using a wizard find the options and set the "number of rows to guess" to a very large number, ideally the number of rows in the source file. Also indicate which row of data contains the first actual data row. A common cause of problems when there is one or more blank header rows. With Excel you can't tell SAS to ignore them. With a CSV file you can indicate the first row of data with the wizard or the DATAROW statement in Proc Import code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Be default the import procedure guesses as to variable type using a very few rows of data. If the full range of values are not encountered in the first rows then the procedure guesses wrong.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:09:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491455#M72167</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-08-30T22:09:17Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491456#M72168</link>
      <description>Hi Reeza! I can’t do this because ALL the variables of of character type.</description>
      <pubDate>Thu, 30 Aug 2018 22:12:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491456#M72168</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-30T22:12:31Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491458#M72169</link>
      <description>&lt;P&gt;Ok, so if you know how to do this in R, how would you identify which variables in R would need to be converted?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:15:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491458#M72169</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-08-30T22:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491459#M72170</link>
      <description>Thank you I will try to import it this way!</description>
      <pubDate>Thu, 30 Aug 2018 22:15:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491459#M72170</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-30T22:15:06Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491460#M72171</link>
      <description>Good question. Firstly, I think they would automatically import as numeric in R. If not, I could re-arrange the columns so that all the numeric ones are together(a real pain, but I searched for how to do this in SAS and I couldn’t find a way although by that time I was a little tired and hungry, LOL). Then I could use an apply function to convert all the variables from column 1 to whatever using the as.numeric() function. I ran into a problem with the array in SAS for two reasons:&lt;BR /&gt;&lt;BR /&gt;1. When SAS cannot concert a legitimate character variable to numeric, instead of ignoring it and throwing a warning it converts it to missing. So I cannot use _ALL_ and apply a conversion function hoping that it would “smart convert” only things that look like numbers go numeric format.&lt;BR /&gt;&lt;BR /&gt;2. Because my variables are scattered, there is no easy way to rename them. SAS requires you that, for example newvar = input(oldvar, best8.). In R you can change variables on the fly.</description>
      <pubDate>Thu, 30 Aug 2018 22:26:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491460#M72171</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-30T22:26:35Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491461#M72172</link>
      <description>I’m sorry for the typos! I was using my phone and typing faster than the phone can input letters. &lt;span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:"&gt;😊&lt;/span&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:27:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491461#M72172</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-30T22:27:40Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491462#M72173</link>
      <description>&lt;P&gt;Unfortunately, given the data structure - in rows rather than columns I don't think simply converting the file to CSV would help.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Except if you take the current data, export it to CSV and then read it back in as numeric. But you'd have to specify the character types anyways and if you're going to do that anyways, you may as well clean it up in SAS.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would be happy to be wrong though &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Thank you I will try to import it this way!&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:32:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491462#M72173</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-08-30T22:32:35Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491465#M72174</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Good question. Firstly, I think they would automatically import as numeric in R. If not, I could re-arrange the columns so that all the numeric ones are together(a real pain, but I searched for how to do this in SAS and I couldn’t find a way although by that time I was a little tired and hungry, LOL). Then I could use an apply function to convert all the variables from column 1 to whatever using the as.numeric() function. I ran into a problem with the array in SAS for two reasons:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Assuming the first data set is what you had in Excel, I don't think it would in R if your data is in mixed types as shown. Even R forces types on columns not along rows.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;1. When SAS cannot concert a legitimate character variable to numeric, instead of ignoring it and throwing a warning it converts it to missing. So I cannot use _ALL_ and apply a conversion function hoping that it would “smart convert” only things that look like numbers go numeric format.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can test this using ANYDIGIT or ANYALPHA and then applying the conversion conditionally.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2. Because my variables are scattered, there is no easy way to rename them. SAS requires you that, for example newvar = input(oldvar, best8.). In R you can change variables on the fly.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Unfortunately, this is definitely an issue that SAS needs to resolve. One way is to add a prefix to all automatically using the SASHELP.VCOLUMN table. Then you can keep track of which ones you need to convert and rename after the fact or delete all variables that are all missing. This is definitely not an easy, beginner level process though.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you're doing this one time, I would probably copy and transpose the data in Excel and then re-import into SAS using GUESSINGROWS=MAX as suggested earlier.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If this needs to be repeated, that's obviously not a good solution!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 22:45:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491465#M72174</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-08-30T22:45:22Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491469#M72175</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/229650"&gt;@sovrappensiero&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a dataset with hundreds (on the order of 400-500) of indicator variables (values 1,2, or 3) that I imported from Excel (.xlsx) and they have imported as character values.&amp;nbsp; I need them to be numeric.&amp;nbsp; If relevant,&amp;nbsp;the data were transposed after importing (initial data look like mixed data type - see below for an example).&amp;nbsp; They are not all clustered together, so I cannot use something like array cha(*) var1 -- var450 ...&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there any way to convert hundreds of "truly numeric" variables that are masquerading as character variables, and are scattered among legitimate character variables,&amp;nbsp;in any way that avoids me having to list all of them or convert them one-by-one?&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Original data imported:&lt;/P&gt;
&lt;P&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; City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; City5&lt;/P&gt;
&lt;P&gt;Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;
&lt;P&gt;Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;Var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After transposing:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var5&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;&lt;/P&gt;
&lt;P&gt;City1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;City2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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; &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;&lt;/P&gt;
&lt;P&gt;City3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&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;&lt;/P&gt;
&lt;P&gt;City4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;
&lt;P&gt;City5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; words&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;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd love some suggestions on how to fix this!&amp;nbsp; I know how to do this easily in R, perl, bash, and other programming languages, but at the moment I am constrained to using SAS.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since the data structure wasn't included the previous comments I made won't work.&lt;/P&gt;
&lt;P&gt;However, have you ever used the EXCEL Copy&amp;gt;Paste Special&amp;gt;Transpose feature? Highlight all the data, copy, go to a new sheet or work book and select the Paste Special and Transpose. Save the result as CSV and import.&lt;/P&gt;
&lt;P&gt;One hopes that you do not have lots of files of this type.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Aug 2018 23:01:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491469#M72175</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-08-30T23:01:26Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491477#M72176</link>
      <description>&lt;P&gt;One possibility is to just dump your current (converted) dataset to a delimited file and then let PROC IMPORT figure out which variables are numeric.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename csv temp;
proc export data=have outfile=csv dbms=csv ; run;
proc import datafile=csv out=want dbms=csv; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Otherwise If your existing conversion process was a classic double transpose then you could try analyzing the middle (tall skinny) version of the data to find out the names of the variables whose set of values only include '1','2' and '3' and use that list in your char to num conversion step.&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2018 00:21:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491477#M72176</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-08-31T00:21:17Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491479#M72177</link>
      <description>&lt;P&gt;I think that the following will do what you want:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input (City Var1 x y z Var5) ($);               
  cards;
City1     words     1           2     words      words                            
City2     2     2           2     words      words                                   
City3     words     1           .     words      words                                   
City4     words     2           1     words      words              
City5     words     2           1     words      words              
;

proc format; 
   value $allnum 
         other=[anyalpha()];
run;

ods output onewayfreqs=work.owf;
proc freq data=have;
  format var1--var5 $allnum.;
  tables var1--var5/ missing;
run;
ods listing;

data owf;
  length var $32 fvalue $50 ;
  set owf;
  by table notsorted;
  if first.table and last.table;
  var=scan(table,-1);
  fvalue=vvaluex('F_'||var);
  if fvalue eq 0;
  keep var;
run;

proc sql noprint;
  select catt(var,'=_',var),
         catt(var,'=input(_',var,',8.);')
    into :rens separated by ' ',
         :vars separated by ' '
      from owf
  ;
quit;

data want (drop=_:);
  set have (rename=(&amp;amp;rens.));
  &amp;amp;vars.;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2018 00:29:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491479#M72177</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-08-31T00:29:43Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491615#M72181</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I propose this solution:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input (varr City1      City2      City3     City4      City5) ($);
cards;
Var1     words      words    words     words      words

Var2       1              2           1             .             2

Var3       2              2           1             1             1

Var4     words      words    words     words      words

Var5     words      words    words     words      words
;run;


data test1;
set test;
array nomm(*)   city1-character-city5;
do i=1 to dim(nomm);
if prxmatch("/[^a-zA-Z]/", nomm(i))=1 then varnum=1;
else varnum=0;
end; 
run;


data test2 test3;
set test1; 
if varnum=1 then output test2;
if varnum=0 then output test3;
run;


proc sql;
select catt('_',name) into : varname separated by ' ' from sashelp.vcolumn 
where memname='TEST22';
quit;


proc transpose data =test2 out=test22(drop=_name_); var  city1-city5; id varr; run;

data test22(drop=var: i);
set test22;
array varr(*) var:;
array varnum(*) &amp;amp;varname;
do i=1 to dim(varr);
varnum(i)=input(varr(i),3.);
end;
run;


%macro rena();
data test22;
set test22;
     rename 
                  %do i = 1 %to %sysfunc(countw(&amp;amp;varname));

                  %scan(&amp;amp;varname.,&amp;amp;i.) = %substr(%scan(&amp;amp;varname.,&amp;amp;i.),2)

                  %end;;

run;

%mend;
%rena;


proc transpose data =test3 out=test33(drop=_name_); var  city1-city5; id varr; run;

data finale;
retain var1-var5;
merge test22 test33;
run;




&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 31 Aug 2018 12:45:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491615#M72181</guid>
      <dc:creator>mansour_ib_sas</dc:creator>
      <dc:date>2018-08-31T12:45:36Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491641#M72185</link>
      <description>&lt;P&gt;I made some corrections to the previous solution. sorry&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input (varr City1      City2      City3     City4      City5) ($);
cards;
Var1     words      words    words     words      words

Var2       1              2           m          .             2

Var3       4             4         p          1             1

Var4     words      words    words     words      words

Var5     words      words    words     words      words
;run;


data test1;
set test;
array nomm(*)   city1-character-city5;
do i=1 to dim(nomm);
if prxmatch("/[^a-zA-Z]/", nomm(i))=1 then varnum=1;
else varnum=0;
output;
end; 
run;



proc sql;
select strip(quote(t.varr)) into : varnamea separated by ' ' from 
 (select varr from test1 group by varr having sum(varnum)=5) as t;

select catt('_',t.varr) into : varnameb separated by ' ' from 
 (select varr from test1 group by varr having sum(varnum)=5) as t;

select strip(quote(t.varr)) into : varnamea1 separated by ',' from 
 (select varr from test1 group by varr having sum(varnum) ne 5) as t;

select catt('_',t.varr) into : varnameb1 separated by ' ' from 
 (select varr from test1 group by varr having sum(varnum) ne 5) as t;
quit;


%macro tt;

%if %symexist(&amp;amp;varnamea) %then %do;
proc sql;
create table test2 as select * from test where varr in (&amp;amp;varnamea);

create table test3 as select * from test where varr in (&amp;amp;varnamea1);
quit;


proc transpose data =test2 out=test22(drop=_name_); var city1-city5 ; id varr; run;

data test22(drop=var: i);
set test22;
array varr(*) var:;
array varnum(*) &amp;amp;varnameb;
do i=1 to dim(varr);
varnum(i)=input(varr(i),3.);
end;
run;


%macro rena();
data test22;
set test22;
     rename 
                  %do i = 1 %to %sysfunc(countw(&amp;amp;varnameb.));

                  %scan(&amp;amp;varnameb.,&amp;amp;i.) = %substr(%scan(&amp;amp;varnameb.,&amp;amp;i.),2)

                  %end;;

run;

%mend;
%rena;


proc transpose data =test3 out=test33(drop=_name_); var  city1-city5; id varr; run;

data finale;
retain var1-var5;
merge test22 test33;
run;


%end;
%else %do;
%put "!!!!!!!!!!!! All variable are characters!!!!!!!";

data finale;
set test;
run;

%end;
%mend  tt;

%tt;



%symdel varnamea varnamea1 varnameb varnameb1;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 31 Aug 2018 14:26:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491641#M72185</guid>
      <dc:creator>mansour_ib_sas</dc:creator>
      <dc:date>2018-08-31T14:26:34Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491642#M72186</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input (var City1      City2      City3     City4      City5) ($);
cards;
Var1     words      words    words     words      words
Var2       1              2           1             .             2
Var3       2              2           1             1             1
Var4     words      words    words     words      words
Var5     words      words    words     words      words
;
run;

proc transpose data=test out=temp;
id var;
var _all_;
run;
data vname;
 set temp;
 array x{*} $ _all_;
 do i=1 to dim(x);
   if anydigit(strip(x{i}))=1 then do;vname=vname(x{i});output;end;
 end;
 keep vname;
run;
proc sort data=vname nodupkey;
by vname;
run;
data _null_;
 set vname end=last;
 if _n_=1 then call execute(catt('data want;set temp(firstobs=2);'));
 call execute(catt('new_',vname,'=input(',vname,',best32.);'));
 if last then call execute('run;');
run;
data _null_;
 set vname end=last;
if _n_=1 then call execute('data want;set want; drop ');
 call execute(vname);
if last then call execute(';run;');
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 31 Aug 2018 14:34:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491642#M72186</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-08-31T14:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491644#M72187</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input (var City1      City2      City3     City4      City5) ($);
cards;
Var1     words      words    words     words      words
Var2       1              2           1             .             2
Var3       2              2           1             1             1
Var4     words      words    words     words      words
Var5     words      words    words     words      words
;
run;

proc transpose data=test out=temp;
id var;
var _all_;
run;
data vname;
 set temp;
 array x{*} $ _all_;
 do i=1 to dim(x);
   if anydigit(strip(x{i}))=1 then do;vname=vname(x{i});output;end;
 end;
 keep vname;
run;
proc sort data=vname nodupkey;
by vname;
run;
data _null_;
 set vname end=last;
 if _n_=1 then call execute(catt('data want;set temp(firstobs=2);'));
 call execute(catt('new_',vname,'=input(',vname,',best32.);'));
 if last then call execute('run;');
run;
data _null_;
 set vname end=last;
if _n_=1 then call execute('data want;set want; drop ');
 call execute(vname);
if last then call execute(';run;');
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 31 Aug 2018 14:36:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491644#M72187</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-08-31T14:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491657#M72188</link>
      <description>&lt;P&gt;Goodness!&amp;nbsp; I never imagined there would be so many&amp;nbsp;complex solutions to this problem!&amp;nbsp; Thank you all so much for taking time to help me.&amp;nbsp; It's going to take me awhile to fully understand all these proposed solutions and select one to apply in my case, and first I have to get through my work day.&amp;nbsp; I like the simplicity of the ones that involve exporting and re-importing, but I'll definitely focus on the others.&amp;nbsp; This is not just a one-time problem, unfortunately.&amp;nbsp; Data comes in like this quite often so I'll be looking for a solution that fits most elegantly into a data cleaning pipeline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my first time using SAS Communities.&amp;nbsp; (My background is that I used SAS extensively as an epidemiologist for several years up until about 2013, but since then I have switched to bioinformatics where I mostly use other software/languages.&amp;nbsp; I still tutor SAS, and this problem is so far the first that has stumped me.&amp;nbsp; Found the forums and off we go on a learning adventure!)&amp;nbsp; I'm used to Stack Overflow...can I accept multiple solutions here?&amp;nbsp; What are my options when several people have proposed functional solutions?&amp;nbsp; I want to follow the rules and preferences of this community...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for giving me tons of fodder for my brain, and for helping me tackle this issue!&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2018 15:00:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491657#M72188</guid>
      <dc:creator>sovrappensiero</dc:creator>
      <dc:date>2018-08-31T15:00:01Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491678#M72191</link>
      <description>&lt;P&gt;Unfortunately you can only select one correct solution. However, there aren't any community rules regarding which one you select .. i.e., the choice is yours. You can always 'like' as many responses as you care to mark that way, but only one can be marked as being 'correct'.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2018 15:50:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/491678#M72191</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-08-31T15:50:29Z</dc:date>
    </item>
    <item>
      <title>Re: Hundreds of variables: convert character to numeric</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/492218#M72217</link>
      <description>&lt;P&gt;Something like this may work (using the test data supplied by &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input (varr City1      City2      City3     City4      City5) ($);
cards;
Var1     words      words    words     words      words
Var2       1              2           1             .             2
Var3       2              2           1             1             1
Var4     words      words    words     words      words
Var5     words      words    words     words      words
;run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;First, transpose:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=test out=trans;
  var city:;
  id  varr;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Then create a temporary program file to convert the numeric variables:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename tempsas temp;
data _null_;
  set test;
  file tempsas;
  array test(*) City:;
  do _N_=1 to dim(test);
    if input(test(_N_),?? best32.)=. and test(_N_) not in('.',' ') then
      delete;
    end;
  put
   '_' varr '=input(' varr ',best32.);' /
   'drop ' varr ';' /
   'rename _' varr '=' varr ';'
   ;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Then use that to convert the numeric variables:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set trans;
  %include tempsas/source2;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Sep 2018 08:07:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Hundreds-of-variables-convert-character-to-numeric/m-p/492218#M72217</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2018-09-04T08:07:35Z</dc:date>
    </item>
  </channel>
</rss>

