<?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: Transposing blocks of observations in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688611#M209219</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12283"&gt;@MiraKr_&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You could do this using proc transpose, but I find the transpose macro makes it easier when you are transposing more than one variable.&lt;/P&gt;
&lt;P&gt;The following code will accomplish what you want:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data need;
  set have;
  if variable='INTERCEPT' then order=1;
  else if variable eq 'PRIOR_CSA' then order=2;
  else if variable eq 'MALE' then order=3;
  else if variable eq 'EASI0141' then order=4;
  else if variable eq 'AAGE' then order=5;
  else if variable eq 'EASI0142' then order=6;
run;

proc sort data=need;
  by order step;
run;

filename tr url 'https://raw.githubusercontent.com/art297/transpose/master/transpose.sas';
%include tr ;

%transpose(data=need, out=want, by=variable, id=step,
  delimiter=_, var=Estimate Odd_Ratio)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;HTH,&lt;/P&gt;
&lt;P&gt;Art&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 02 Oct 2020 19:33:00 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2020-10-02T19:33:00Z</dc:date>
    <item>
      <title>Transposing blocks of observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688520#M209185</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I trying to convert table "Have" into table "Want". I have multiple tables "Have" with different number of steps in them and looking for an automated way to determine the number of steps.&lt;/P&gt;
&lt;TABLE width="455"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;Table "Have"&lt;/TD&gt;
&lt;TD width="114"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="120"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;step&lt;/TD&gt;
&lt;TD width="114"&gt;Variable&lt;/TD&gt;
&lt;TD width="90"&gt;Estimate&lt;/TD&gt;
&lt;TD width="120"&gt;Odd_Ratio&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;INTERCEPT&lt;/TD&gt;
&lt;TD width="90"&gt;2.2168&lt;/TD&gt;
&lt;TD width="120"&gt;9.178 (2.62, 32.149)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;PRIOR_CSA&lt;/TD&gt;
&lt;TD width="90"&gt;-0.6381&lt;/TD&gt;
&lt;TD width="120"&gt;0.528 (0.236, 1.18)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;MALE&lt;/TD&gt;
&lt;TD width="90"&gt;-0.4896&lt;/TD&gt;
&lt;TD width="120"&gt;0.613 (0.319, 1.176)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;EASI0141&lt;/TD&gt;
&lt;TD width="90"&gt;-0.00831&lt;/TD&gt;
&lt;TD width="120"&gt;0.992 (0.966, 1.018)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;AAGE&lt;/TD&gt;
&lt;TD width="90"&gt;0.017&lt;/TD&gt;
&lt;TD width="120"&gt;1.017 (0.993, 1.042)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;EASI0142&lt;/TD&gt;
&lt;TD width="90"&gt;0.00382&lt;/TD&gt;
&lt;TD width="120"&gt;1.004 (0.96, 1.05)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;1&lt;/TD&gt;
&lt;TD width="114"&gt;INTERCEPT&lt;/TD&gt;
&lt;TD width="90"&gt;2.2368&lt;/TD&gt;
&lt;TD width="120"&gt;9.363 (2.737, 32.037)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;1&lt;/TD&gt;
&lt;TD width="114"&gt;PRIOR_CSA&lt;/TD&gt;
&lt;TD width="90"&gt;-0.6275&lt;/TD&gt;
&lt;TD width="120"&gt;0.534 (0.241, 1.182)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;1&lt;/TD&gt;
&lt;TD width="114"&gt;MALE&lt;/TD&gt;
&lt;TD width="90"&gt;-0.4894&lt;/TD&gt;
&lt;TD width="120"&gt;0.613 (0.32, 1.176)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;1&lt;/TD&gt;
&lt;TD width="114"&gt;EASI0141&lt;/TD&gt;
&lt;TD width="90"&gt;-0.00638&lt;/TD&gt;
&lt;TD width="120"&gt;0.994 (0.98, 1.008)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;1&lt;/TD&gt;
&lt;TD width="114"&gt;AAGE&lt;/TD&gt;
&lt;TD width="90"&gt;0.017&lt;/TD&gt;
&lt;TD width="120"&gt;1.017 (0.993, 1.042)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;2&lt;/TD&gt;
&lt;TD width="114"&gt;INTERCEPT&lt;/TD&gt;
&lt;TD width="90"&gt;1.9037&lt;/TD&gt;
&lt;TD width="120"&gt;6.711 (2.531, 17.794)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;2&lt;/TD&gt;
&lt;TD width="114"&gt;PRIOR_CSA&lt;/TD&gt;
&lt;TD width="90"&gt;-0.7005&lt;/TD&gt;
&lt;TD width="120"&gt;0.496 (0.228, 1.081)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;2&lt;/TD&gt;
&lt;TD width="114"&gt;MALE&lt;/TD&gt;
&lt;TD width="90"&gt;-0.5303&lt;/TD&gt;
&lt;TD width="120"&gt;0.588 (0.309, 1.122)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;2&lt;/TD&gt;
&lt;TD width="114"&gt;AAGE&lt;/TD&gt;
&lt;TD width="90"&gt;0.018&lt;/TD&gt;
&lt;TD width="120"&gt;1.018 (0.994, 1.043)&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Desired format:&lt;/P&gt;
&lt;TABLE width="954"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;Table "Want"&lt;/TD&gt;
&lt;TD width="114"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="120"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="84"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="128"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="81"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="109"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="97"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;step&lt;/TD&gt;
&lt;TD width="114"&gt;Variable&lt;/TD&gt;
&lt;TD width="90"&gt;Estimate_0&lt;/TD&gt;
&lt;TD width="120"&gt;Odd_Ratio_0&lt;/TD&gt;
&lt;TD width="84"&gt;Estimate_1&lt;/TD&gt;
&lt;TD width="128"&gt;Odd_Ratio_1&lt;/TD&gt;
&lt;TD width="81"&gt;Estimate_2&lt;/TD&gt;
&lt;TD width="109"&gt;Odd_Ratio_2&lt;/TD&gt;
&lt;TD width="97"&gt;ProbChiSq_2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;INTERCEPT&lt;/TD&gt;
&lt;TD width="90"&gt;2.2168&lt;/TD&gt;
&lt;TD width="120"&gt;9.178 (2.62, 32.149)&lt;/TD&gt;
&lt;TD width="84"&gt;2.2368&lt;/TD&gt;
&lt;TD width="128"&gt;9.363 (2.737, 32.037)&lt;/TD&gt;
&lt;TD width="81"&gt;1.9037&lt;/TD&gt;
&lt;TD width="109"&gt;6.711 (2.531, 17.794)&lt;/TD&gt;
&lt;TD width="97"&gt;0.0001&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;PRIOR_CSA&lt;/TD&gt;
&lt;TD width="90"&gt;-0.6381&lt;/TD&gt;
&lt;TD width="120"&gt;0.528 (0.236, 1.18)&lt;/TD&gt;
&lt;TD width="84"&gt;-0.6275&lt;/TD&gt;
&lt;TD width="128"&gt;0.534 (0.241, 1.182)&lt;/TD&gt;
&lt;TD width="81"&gt;-0.7005&lt;/TD&gt;
&lt;TD width="109"&gt;0.496 (0.228, 1.081)&lt;/TD&gt;
&lt;TD width="97"&gt;0.0776&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;MALE&lt;/TD&gt;
&lt;TD width="90"&gt;-0.4896&lt;/TD&gt;
&lt;TD width="120"&gt;0.613 (0.319, 1.176)&lt;/TD&gt;
&lt;TD width="84"&gt;-0.4894&lt;/TD&gt;
&lt;TD width="128"&gt;0.613 (0.32, 1.176)&lt;/TD&gt;
&lt;TD width="81"&gt;-0.5303&lt;/TD&gt;
&lt;TD width="109"&gt;0.588 (0.309, 1.122)&lt;/TD&gt;
&lt;TD width="97"&gt;0.1072&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;EASI0141&lt;/TD&gt;
&lt;TD width="90"&gt;-0.00831&lt;/TD&gt;
&lt;TD width="120"&gt;0.992 (0.966, 1.018)&lt;/TD&gt;
&lt;TD width="84"&gt;-0.00638&lt;/TD&gt;
&lt;TD width="128"&gt;0.994 (0.98, 1.008)&lt;/TD&gt;
&lt;TD width="81"&gt;0.018&lt;/TD&gt;
&lt;TD width="109"&gt;1.018 (0.994, 1.043)&lt;/TD&gt;
&lt;TD width="97"&gt;0.1364&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;AAGE&lt;/TD&gt;
&lt;TD width="90"&gt;0.017&lt;/TD&gt;
&lt;TD width="120"&gt;1.017 (0.993, 1.042)&lt;/TD&gt;
&lt;TD width="84"&gt;0.017&lt;/TD&gt;
&lt;TD width="128"&gt;1.017 (0.993, 1.042)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="131"&gt;0&lt;/TD&gt;
&lt;TD width="114"&gt;EASI0142&lt;/TD&gt;
&lt;TD width="90"&gt;0.00382&lt;/TD&gt;
&lt;TD width="120"&gt;1.004 (0.96, 1.05)&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Fri, 02 Oct 2020 14:35:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688520#M209185</guid>
      <dc:creator>MiraKr_</dc:creator>
      <dc:date>2020-10-02T14:35:03Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing blocks of observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688523#M209186</link>
      <description>&lt;P&gt;Since your example data only shows one set of values for Step=0 and Variable=Intercept you have to provide some details as to&lt;/P&gt;
&lt;P&gt;1) Where do the values Estimate_1, Estimate_2 (and the other _1 _2) values come from&lt;/P&gt;
&lt;P&gt;2) where does the ProbChisqr_2 come from since it is not in the input data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does the "step" actually have any meaning because apparently you might be combining values from different step values but labeling all as step 0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instructions here: &lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt; will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the &amp;lt;/&amp;gt; icon or attached as text to show exactly what you have and that we can test code against.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This would likely be a tad easier if you had the "odds ratio" as three separate numeric values instead of that character value.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Oct 2020 14:50:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688523#M209186</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-10-02T14:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing blocks of observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688611#M209219</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12283"&gt;@MiraKr_&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You could do this using proc transpose, but I find the transpose macro makes it easier when you are transposing more than one variable.&lt;/P&gt;
&lt;P&gt;The following code will accomplish what you want:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data need;
  set have;
  if variable='INTERCEPT' then order=1;
  else if variable eq 'PRIOR_CSA' then order=2;
  else if variable eq 'MALE' then order=3;
  else if variable eq 'EASI0141' then order=4;
  else if variable eq 'AAGE' then order=5;
  else if variable eq 'EASI0142' then order=6;
run;

proc sort data=need;
  by order step;
run;

filename tr url 'https://raw.githubusercontent.com/art297/transpose/master/transpose.sas';
%include tr ;

%transpose(data=need, out=want, by=variable, id=step,
  delimiter=_, var=Estimate Odd_Ratio)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;HTH,&lt;/P&gt;
&lt;P&gt;Art&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Oct 2020 19:33:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing-blocks-of-observations/m-p/688611#M209219</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2020-10-02T19:33:00Z</dc:date>
    </item>
  </channel>
</rss>

