<?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: Splitting varialbes into multiple in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10422#M792</link>
    <description>Try this:&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
 length caseid 8 condition $20;&lt;BR /&gt;
 input caseid condition;&lt;BR /&gt;
 datalines;&lt;BR /&gt;
 1 headache&lt;BR /&gt;
 1 cough&lt;BR /&gt;
 1 vomiting&lt;BR /&gt;
 2 headache&lt;BR /&gt;
 2 cough&lt;BR /&gt;
 3 vomiting&lt;BR /&gt;
 4 rash&lt;BR /&gt;
 4 anaemia&lt;BR /&gt;
 ;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data test1/view=test1;&lt;BR /&gt;
 set test;&lt;BR /&gt;
 length flag 8;&lt;BR /&gt;
 flag = 1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
options missing = 0;&lt;BR /&gt;
proc transpose data = test1 out = test2;&lt;BR /&gt;
 by caseid;&lt;BR /&gt;
 id condition;&lt;BR /&gt;
 var flag;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
//Fredrik</description>
    <pubDate>Fri, 01 Oct 2010 14:25:35 GMT</pubDate>
    <dc:creator>FredrikE</dc:creator>
    <dc:date>2010-10-01T14:25:35Z</dc:date>
    <item>
      <title>Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10421#M791</link>
      <description>I'm a fairly novice SAS programmer and after doing multiple searches I'm no wiser as to how to solve my current problem.&lt;BR /&gt;
&lt;BR /&gt;
My dataset is fairly simple.  I have two variables, namely caseid and condition.  An example of the data is given:&lt;BR /&gt;
&lt;BR /&gt;
caseid condition&lt;BR /&gt;
1         headache&lt;BR /&gt;
1         cough&lt;BR /&gt;
1         vomiting&lt;BR /&gt;
2         headache&lt;BR /&gt;
2         cough&lt;BR /&gt;
3         vomiting&lt;BR /&gt;
4         rash&lt;BR /&gt;
4         anaemia&lt;BR /&gt;
&lt;BR /&gt;
I would like to split the "condition" variable into different variables based on the list of coniditons and so that each row within the data is listed by the caseid and a value of "1" is given when the caseid has the condition and a "0" when they don't.  I would like my data to appears as:&lt;BR /&gt;
&lt;BR /&gt;
caseid headache cough vomiting rash anaemia&lt;BR /&gt;
1         1             1        1           0      0&lt;BR /&gt;
2         1             1        0           0      0&lt;BR /&gt;
3         0             0        1           0      0&lt;BR /&gt;
4         0             0        0           1      1&lt;BR /&gt;
&lt;BR /&gt;
I have tried transposing the data using caseid as the "by" variable which results in a dataset where the list of conditions still remains as the observation and not as a variable label.  I've also tried creating an array to input the data into.  All to no avail.  I would appreciate any advice on how to resolve this issue.</description>
      <pubDate>Fri, 01 Oct 2010 14:00:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10421#M791</guid>
      <dc:creator>den</dc:creator>
      <dc:date>2010-10-01T14:00:28Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10422#M792</link>
      <description>Try this:&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
 length caseid 8 condition $20;&lt;BR /&gt;
 input caseid condition;&lt;BR /&gt;
 datalines;&lt;BR /&gt;
 1 headache&lt;BR /&gt;
 1 cough&lt;BR /&gt;
 1 vomiting&lt;BR /&gt;
 2 headache&lt;BR /&gt;
 2 cough&lt;BR /&gt;
 3 vomiting&lt;BR /&gt;
 4 rash&lt;BR /&gt;
 4 anaemia&lt;BR /&gt;
 ;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data test1/view=test1;&lt;BR /&gt;
 set test;&lt;BR /&gt;
 length flag 8;&lt;BR /&gt;
 flag = 1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
options missing = 0;&lt;BR /&gt;
proc transpose data = test1 out = test2;&lt;BR /&gt;
 by caseid;&lt;BR /&gt;
 id condition;&lt;BR /&gt;
 var flag;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
//Fredrik</description>
      <pubDate>Fri, 01 Oct 2010 14:25:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10422#M792</guid>
      <dc:creator>FredrikE</dc:creator>
      <dc:date>2010-10-01T14:25:35Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10423#M793</link>
      <description>Try this:&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data condition;&lt;BR /&gt;
input caseid 1-2 condition $3-10;&lt;BR /&gt;
datalines;&lt;BR /&gt;
1 headache&lt;BR /&gt;
1 cough&lt;BR /&gt;
1 vomiting&lt;BR /&gt;
2 headache&lt;BR /&gt;
2 cough&lt;BR /&gt;
3 vomiting&lt;BR /&gt;
4 rash&lt;BR /&gt;
4 anaemia&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
proc report data=condition nowindows out=cond1(drop=_break_ rename=(_c2_=anaemia _c3_=cough _c4_=headache _c5_=rash _c6_=vomiting));&lt;BR /&gt;
column caseid condition;&lt;BR /&gt;
define caseid/group;&lt;BR /&gt;
define condition/across order=internal;&lt;BR /&gt;
run;</description>
      <pubDate>Fri, 01 Oct 2010 14:37:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10423#M793</guid>
      <dc:creator>SASPhile</dc:creator>
      <dc:date>2010-10-01T14:37:43Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10424#M794</link>
      <description>You can turn those missing values into zeros with the PROC REPORT statement option COMPLETROWS.  Now you just need a way to automatically rename the _Cn_ variables.&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
proc report data=condition nowindows&lt;BR /&gt;
      &lt;B&gt;completerows&lt;/B&gt;&lt;BR /&gt;
      out=cond1(drop=_break_ rename=(_c2_=anaemia&lt;BR /&gt;
         _c3_=cough _c4_=headache _c5_=rash _c6_=vomiting));&lt;BR /&gt;
 column caseid condition;&lt;BR /&gt;
 define caseid/group;&lt;BR /&gt;
 define condition/across order=internal;&lt;BR /&gt;
 run;&lt;BR /&gt;
[pre]</description>
      <pubDate>Fri, 01 Oct 2010 16:38:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10424#M794</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2010-10-01T16:38:38Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10425#M795</link>
      <description>Hi:&lt;BR /&gt;
  "now you just need a way to automatically rename the _Cn_ variables" -- there's not a way within PROC REPORT to do that. The RENAME option on the OUT= is the way. So if you wanted "automatically" you'd have to do it with macro techniques. &lt;BR /&gt;
 &lt;BR /&gt;
cynthia</description>
      <pubDate>Fri, 01 Oct 2010 16:55:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10425#M795</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-10-01T16:55:26Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10426#M796</link>
      <description>Yes the rename is too tedious and not data driven.  That's why I think TRANSPOSE is a better choice.&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data condition;&lt;BR /&gt;
   input caseid 1-2 condition $3-10;&lt;BR /&gt;
   datalines;&lt;BR /&gt;
1 headache&lt;BR /&gt;
1 cough&lt;BR /&gt;
1 vomiting&lt;BR /&gt;
2 headache&lt;BR /&gt;
2 cough&lt;BR /&gt;
3 vomiting&lt;BR /&gt;
4 rash&lt;BR /&gt;
4 anaemia&lt;BR /&gt;
;;;;&lt;BR /&gt;
   run;&lt;BR /&gt;
&lt;BR /&gt;
proc summary data=condition nway completetypes;&lt;BR /&gt;
   class caseid;&lt;BR /&gt;
   class condition / order=data;&lt;BR /&gt;
   output out=test2;&lt;BR /&gt;
   run;&lt;BR /&gt;
proc transpose data=test2 out=test3(drop=_name_);&lt;BR /&gt;
   by caseid;&lt;BR /&gt;
   id condition;&lt;BR /&gt;
   var _freq_;&lt;BR /&gt;
   run;&lt;BR /&gt;
proc print;&lt;BR /&gt;
   run;&lt;BR /&gt;
   &lt;BR /&gt;
   &lt;BR /&gt;
Obs    caseid    headache    cough    vomiting    rash    anaemia&lt;BR /&gt;
&lt;BR /&gt;
 1        1          1         1          1         0        0&lt;BR /&gt;
 2        2          1         1          0         0        0&lt;BR /&gt;
 3        3          0         0          1         0        0&lt;BR /&gt;
 4        4          0         0          0         1        1&lt;BR /&gt;
&lt;BR /&gt;
[/pre]</description>
      <pubDate>Fri, 01 Oct 2010 17:41:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10426#M796</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2010-10-01T17:41:55Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10427#M797</link>
      <description>How do we order the variables alphabetically?</description>
      <pubDate>Fri, 01 Oct 2010 19:14:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10427#M797</guid>
      <dc:creator>SASPhile</dc:creator>
      <dc:date>2010-10-01T19:14:13Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10428#M798</link>
      <description>&amp;gt; How do we order the variables alphabetically?&lt;BR /&gt;
I used ORDER=DATA because that is order the OP had used in his NEED data set.  If you remove ORDER=DATA from my program the variables will be alphabetical.</description>
      <pubDate>Fri, 01 Oct 2010 20:57:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10428#M798</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2010-10-01T20:57:59Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting varialbes into multiple</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10429#M799</link>
      <description>Many thanks to data _null_ for the response to my original question.  This worked perfectly!</description>
      <pubDate>Mon, 04 Oct 2010 11:57:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-varialbes-into-multiple/m-p/10429#M799</guid>
      <dc:creator>den</dc:creator>
      <dc:date>2010-10-04T11:57:51Z</dc:date>
    </item>
  </channel>
</rss>

