<?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: Split dataset columnwise with constant columns for each dataset in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226904#M54122</link>
    <description>&lt;P&gt;Here is another solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;infile cards dsd;&lt;BR /&gt;input category$ question$ response1$ response2$ response3$;&lt;BR /&gt;cards;&lt;BR /&gt;category,question,one,two,three&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;%macro response;&lt;BR /&gt;%do i = 1 %to 3;&lt;BR /&gt;data response_&amp;amp;i;&lt;BR /&gt;set have(keep=category question response&amp;amp;i);&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;BR /&gt;%response;&lt;/P&gt;</description>
    <pubDate>Wed, 23 Sep 2015 13:44:11 GMT</pubDate>
    <dc:creator>Steelers_In_DC</dc:creator>
    <dc:date>2015-09-23T13:44:11Z</dc:date>
    <item>
      <title>Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226893#M54118</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I have a SAS table with survey responses. When there is a new response, a new column is added. I want to keep first 2 columns as constant and split the tables in below way. The tables needs to be split in this manner&amp;nbsp;for&amp;nbsp;easier import to visualization tool.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Data set:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Category &amp;nbsp; Questions &amp;nbsp; &amp;nbsp; Response1 &amp;nbsp; Response2 &amp;nbsp;Response 3&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Split table 1:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Category &amp;nbsp; Questions &amp;nbsp; &amp;nbsp; Response1 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Split table 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Category &amp;nbsp; Questions &amp;nbsp; &amp;nbsp; Response2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Split table 3:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Category &amp;nbsp; Questions &amp;nbsp; &amp;nbsp; Response3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have already tried below macro. This is splitting the data row wise. &amp;nbsp;New table for each row. Please help....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;%let TABLE=SPLIT2;&lt;BR /&gt;%let COLUMN=Questions;&lt;BR /&gt;proc sql noprint;&lt;BR /&gt;select distinct&lt;BR /&gt;cat("DATA out_",compress(&amp;amp;COLUMN.,,'kad'),&lt;BR /&gt;"; set &amp;amp;TABLE.(where=(&amp;amp;COLUMN.='", &amp;amp;COLUMN.,&lt;BR /&gt;"')); run;") into :allsteps separated by ';'&lt;BR /&gt;from &amp;amp;TABLE.;&lt;BR /&gt;quit;&lt;BR /&gt;%macro runSteps;&lt;BR /&gt;&amp;amp;allsteps.;&lt;BR /&gt;%mend;&lt;BR /&gt;%runSteps;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 13:15:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226893#M54118</guid>
      <dc:creator>Deep1</dc:creator>
      <dc:date>2015-09-23T13:15:47Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226896#M54119</link>
      <description>&lt;P&gt;No need to go all marco language for that, a simple array will do the trick, note I assume from your test data the three variables are called response, and there are 3, so you will need to modify as per your data.&lt;/P&gt;&lt;P&gt;data want (drop=response1-response3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length resp $20;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array response{3};&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; qnum=i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; resp=response{i};&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note that it is not a great idea to split your data up unless you really have to (i.e. for an output). &amp;nbsp;You are better off creating a normlised table structure as above then using by group processing to work with that data, i.e. by qnum, rather than looping code each time.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 13:26:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226896#M54119</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-09-23T13:26:35Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226898#M54120</link>
      <description>&lt;P&gt;I will use something like this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%MACRO RUNSTEP(DS=);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%LOCAL&amp;nbsp;&lt;SPAN&gt;DSID&amp;nbsp;NVARS&amp;nbsp;RC&amp;nbsp;I;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%let DSID=%sysfunc(open(&amp;amp;DS,is)); %*Open DS;&lt;BR /&gt;%let NVARS=%sysfunc(attrn(&amp;amp;DSID,nvars)); %*Count vars in DS;&lt;BR /&gt;%let RC=%sysfunc(close(&amp;amp;DSID));&lt;SPAN&gt;%*Close DS;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%DO I=3 %TO &amp;amp;NVARS.;&lt;BR /&gt;DATA OUT_&amp;amp;I.;&lt;BR /&gt;SET &amp;amp;DS;&lt;BR /&gt;KEEP Category Questions Response%eval(&amp;amp;I-2).;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;%END;&lt;BR /&gt;%MEND;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 13:26:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226898#M54120</guid>
      <dc:creator>arodriguez</dc:creator>
      <dc:date>2015-09-23T13:26:50Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226899#M54121</link>
      <description>&lt;P&gt;Which illustrates my point above. &amp;nbsp;If you now need to means that data, and output it, then you would need to loop over those datasets you just created, then loop over them again to output. &amp;nbsp;Or you could just use by qnum in the means and the report and have no looping at all.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 13:28:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226899#M54121</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-09-23T13:28:01Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226904#M54122</link>
      <description>&lt;P&gt;Here is another solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;infile cards dsd;&lt;BR /&gt;input category$ question$ response1$ response2$ response3$;&lt;BR /&gt;cards;&lt;BR /&gt;category,question,one,two,three&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;%macro response;&lt;BR /&gt;%do i = 1 %to 3;&lt;BR /&gt;data response_&amp;amp;i;&lt;BR /&gt;set have(keep=category question response&amp;amp;i);&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;BR /&gt;%mend;&lt;BR /&gt;%response;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 13:44:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226904#M54122</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2015-09-23T13:44:11Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226915#M54124</link>
      <description>&lt;P&gt;By response do you mean a new respondent to the survey?&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2015 14:57:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/226915#M54124</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-09-23T14:57:33Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227453#M54185</link>
      <description>&lt;P&gt;Yes a new response to the survey&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2015 07:04:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227453#M54185</guid>
      <dc:creator>Deep1</dc:creator>
      <dc:date>2015-09-28T07:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227454#M54186</link>
      <description>&lt;P&gt;Both the array code and the macro code works like a charm ..!! Thanks everyone for your help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2015 07:06:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227454#M54186</guid>
      <dc:creator>Deep1</dc:creator>
      <dc:date>2015-09-28T07:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Split dataset columnwise with constant columns for each dataset</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227580#M54195</link>
      <description>&lt;P&gt;I would seriously consider why respondents are in column. It sounds like someone may be duplicating an approach used in a spreadsheet in classwork example and never considered the impact on other data.&lt;/P&gt;
&lt;P&gt;With respondent as the column it is going to be very difficult to do things like comparing associations between 2 or more questions. I.e what percentage of respondents that picked "A" for question 3 also answered "D" for question 10.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have worked with survey data upwards of 50,000 respondents and cannot imagine anyway I would have been able to meet requirements with your data structure.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2015 20:52:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Split-dataset-columnwise-with-constant-columns-for-each-dataset/m-p/227580#M54195</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-09-28T20:52:57Z</dc:date>
    </item>
  </channel>
</rss>

