<?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: transpose data from one variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51498#M10827</link>
    <description>[pre]&lt;BR /&gt;
data temp;&lt;BR /&gt;
 input z	BT	BBV	DP $	Bat $	Res	$ field	;&lt;BR /&gt;
cards;&lt;BR /&gt;
23	5	1	N	R	Hit	0	&lt;BR /&gt;
23	5	1	N	R	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Hit	0	&lt;BR /&gt;
23	5	1	Y	L	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Out	9	&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
data temp;&lt;BR /&gt;
 set temp;&lt;BR /&gt;
 if res = 'Hit' then count+1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data want;&lt;BR /&gt;
 set temp;&lt;BR /&gt;
 by count ;&lt;BR /&gt;
 length fieldres $ 200;&lt;BR /&gt;
 retain fieldres num;&lt;BR /&gt;
 nobs+1;&lt;BR /&gt;
 if first.count then do; &lt;BR /&gt;
                       call missing (fieldres);&lt;BR /&gt;
                       num=nobs;&lt;BR /&gt;
                     end;&lt;BR /&gt;
 fieldres=catx(' ',fieldres,field);&lt;BR /&gt;
 if last.count then do;&lt;BR /&gt;
                   set temp point=num;&lt;BR /&gt;
                   output;&lt;BR /&gt;
                  end;&lt;BR /&gt;
 drop field nobs count;&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
    <pubDate>Mon, 18 Apr 2011 04:11:13 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2011-04-18T04:11:13Z</dc:date>
    <item>
      <title>transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51493#M10822</link>
      <description>hello,&lt;BR /&gt;
I have a data set which looks like this:&lt;BR /&gt;
[pre]&lt;BR /&gt;
z	BT	BBV	DP	Bat	Res	field	&lt;BR /&gt;
23	5	1	N	R	Out	0	&lt;BR /&gt;
23	5	1	N	R	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Out	0	&lt;BR /&gt;
23	5	1	Y	L	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Out	9	&lt;BR /&gt;
[/pre]&lt;BR /&gt;
The first two line of data show one scenario with 2 different fielders, 0 &amp;amp; 5.  The next 3 lines show a different scenario with 3 fielders, 0, 5 &amp;amp; 9.  I then want it to look like this:&lt;BR /&gt;
[pre]&lt;BR /&gt;
z	BT	BBV	DP	Bat	Res	field1	field2 field3&lt;BR /&gt;
23	5	1	N	R	Out	0	5	&lt;BR /&gt;
23	5	1	Y	L	Out	0	5	9	&lt;BR /&gt;
[/pre]&lt;BR /&gt;
What do i need to do to make this work?&lt;BR /&gt;
&lt;BR /&gt;
Message was edited by: CharlesR

Message was edited by: CharlesR</description>
      <pubDate>Fri, 15 Apr 2011 21:14:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51493#M10822</guid>
      <dc:creator>CharlesR</dc:creator>
      <dc:date>2011-04-15T21:14:14Z</dc:date>
    </item>
    <item>
      <title>Re: transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51494#M10823</link>
      <description>How do you identify the 'beginning' or 'end' of a scenario.  I'm guessing that Bat is batter Left or Right, so they could be the same back to back and harder to identify where one scenario starts and one ends? &lt;BR /&gt;
&lt;BR /&gt;
See this page for sample code to help with changing the stucture of your dataset. &lt;BR /&gt;
&lt;BR /&gt;
&lt;A href="http://www.ats.ucla.edu/stat/sas/modules/longtowide_data.htm" target="_blank"&gt;http://www.ats.ucla.edu/stat/sas/modules/longtowide_data.htm&lt;/A&gt;</description>
      <pubDate>Fri, 15 Apr 2011 21:55:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51494#M10823</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2011-04-15T21:55:20Z</dc:date>
    </item>
    <item>
      <title>Re: transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51495#M10824</link>
      <description>So I tried to follow the code which you referenced with your link, and it isn't working.  Here's the code I've got:&lt;BR /&gt;
[pre]&lt;BR /&gt;
proc sort data = def_means_byposition;&lt;BR /&gt;
  by zone BallInPlayType BattedBallVelocity DblPlayPosn BatHandedness fieldingbypos; &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
DATA ResponsibleFielders;&lt;BR /&gt;
  SET def_means_byposition;&lt;BR /&gt;
  by zone BallInPlayType BattedBallVelocity DblPlayPosn BatHandednessPlayRes_forPerc fieldingbypos;&lt;BR /&gt;
&lt;BR /&gt;
  KEEP zone BallInPlayType BattedBallVelocity DblPlayPosn BatHandedness PlayRes_forPerc RespFielder1-RespFielder4;&lt;BR /&gt;
  RETAIN RespFielder1-RespFielder4;&lt;BR /&gt;
&lt;BR /&gt;
  ARRAY aRespFielder(1:4) RespFielder1 - RespFielder4 ;&lt;BR /&gt;
&lt;BR /&gt;
  IF first.BatHandedness THEN DO;&lt;BR /&gt;
 	DO i = 1 to 4 ;&lt;BR /&gt;
     	  aRespFielder( i ) = 0;&lt;BR /&gt;
	end;&lt;BR /&gt;
  end; &lt;BR /&gt;
&lt;BR /&gt;
  aRespFielder(fieldingbypos) = Count;&lt;BR /&gt;
  IF last.BatHandedness THEN OUTPUT ;&lt;BR /&gt;
RUN;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
And here's the error i get:&lt;BR /&gt;
[pre] ERROR: Array subscript out of range at line 1168 column 3.[/pre]&lt;BR /&gt;
&lt;BR /&gt;
Any idea what i've done wrong?&lt;BR /&gt;
&lt;BR /&gt;
Here's the code which was referenced: [pre]&lt;BR /&gt;
PROC SORT DATA=long3 OUT=longsrt3 ;&lt;BR /&gt;
      BY famid birth ;&lt;BR /&gt;
    RUN ;&lt;BR /&gt;
&lt;BR /&gt;
    DATA wide3 ;&lt;BR /&gt;
      SET longsrt3 ;&lt;BR /&gt;
      BY famid birth ;&lt;BR /&gt;
&lt;BR /&gt;
      KEEP famid ht1-ht2 ;&lt;BR /&gt;
      RETAIN ht1-ht2 ;&lt;BR /&gt;
&lt;BR /&gt;
      ARRAY aht(1:2) ht1-ht2 ;&lt;BR /&gt;
&lt;BR /&gt;
      IF first.birth THEN&lt;BR /&gt;
      DO;&lt;BR /&gt;
        DO i = 1 to 2 ;&lt;BR /&gt;
          aht( i ) = 0 ;&lt;BR /&gt;
        END;&lt;BR /&gt;
      END;&lt;BR /&gt;
&lt;BR /&gt;
      aht( age ) = ht ;&lt;BR /&gt;
&lt;BR /&gt;
      IF last.birth THEN OUTPUT ;&lt;BR /&gt;
&lt;BR /&gt;
    RUN; [/pre]</description>
      <pubDate>Sat, 16 Apr 2011 02:17:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51495#M10824</guid>
      <dc:creator>CharlesR</dc:creator>
      <dc:date>2011-04-16T02:17:28Z</dc:date>
    </item>
    <item>
      <title>Re: transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51496#M10825</link>
      <description>Ignore this; proc transpose is much easier</description>
      <pubDate>Sat, 16 Apr 2011 03:57:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51496#M10825</guid>
      <dc:creator>CharlesR</dc:creator>
      <dc:date>2011-04-16T03:57:35Z</dc:date>
    </item>
    <item>
      <title>Re: transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51497#M10826</link>
      <description>proc transpose is the best way to work this.  Here's the code i used.&lt;BR /&gt;
[pre]&lt;BR /&gt;
proc transpose data = def_means_byposition out = ResponsibleFielders (drop = _Name_) prefix = fielder;&lt;BR /&gt;
  by zone BallInPlayType BattedBallVelocity DblPlayPosn BatHandedness PlayRes_forPerc;&lt;BR /&gt;
  var fieldingbypos;&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]</description>
      <pubDate>Sat, 16 Apr 2011 03:59:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51497#M10826</guid>
      <dc:creator>CharlesR</dc:creator>
      <dc:date>2011-04-16T03:59:08Z</dc:date>
    </item>
    <item>
      <title>Re: transpose data from one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51498#M10827</link>
      <description>[pre]&lt;BR /&gt;
data temp;&lt;BR /&gt;
 input z	BT	BBV	DP $	Bat $	Res	$ field	;&lt;BR /&gt;
cards;&lt;BR /&gt;
23	5	1	N	R	Hit	0	&lt;BR /&gt;
23	5	1	N	R	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Hit	0	&lt;BR /&gt;
23	5	1	Y	L	Out	5	&lt;BR /&gt;
23	5	1	Y	L	Out	9	&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
data temp;&lt;BR /&gt;
 set temp;&lt;BR /&gt;
 if res = 'Hit' then count+1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data want;&lt;BR /&gt;
 set temp;&lt;BR /&gt;
 by count ;&lt;BR /&gt;
 length fieldres $ 200;&lt;BR /&gt;
 retain fieldres num;&lt;BR /&gt;
 nobs+1;&lt;BR /&gt;
 if first.count then do; &lt;BR /&gt;
                       call missing (fieldres);&lt;BR /&gt;
                       num=nobs;&lt;BR /&gt;
                     end;&lt;BR /&gt;
 fieldres=catx(' ',fieldres,field);&lt;BR /&gt;
 if last.count then do;&lt;BR /&gt;
                   set temp point=num;&lt;BR /&gt;
                   output;&lt;BR /&gt;
                  end;&lt;BR /&gt;
 drop field nobs count;&lt;BR /&gt;
run;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
      <pubDate>Mon, 18 Apr 2011 04:11:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-data-from-one-variable/m-p/51498#M10827</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-04-18T04:11:13Z</dc:date>
    </item>
  </channel>
</rss>

