<?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: Convert observations into variables in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95945#M1027</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Subject to all the questions that you have seen about your data and objectives, this might be what you are looking for:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array fvalues {99} f1-f99;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.e);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by a b c d e;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fvalues{f} = g;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; drop f g;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will not detect how many times the same F appears within a grouping of A/B/C/D/E.&amp;nbsp; If there are duplicates, it will merely replace the old value with the new.&amp;nbsp; If you have duplicates, but want to save both of them, the data structure that you described is not capable of holding all the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Aug 2012 20:36:26 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2012-08-16T20:36:26Z</dc:date>
    <item>
      <title>Convert observations into variables</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95942#M1024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to convert one column ob observations into multiple variables, the original data looks something like:&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;A&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;B&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="text-align: center; color: #ffffff; background-color: #6690bc;"&gt;C&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;D&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;E&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;F&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;G&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;99&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and I am trying to convert into something like:&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;A&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;B&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;C&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;D&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;E&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;F1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;F2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;F3&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;...&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;F99&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;X&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I understand that the proc transpose could achieve such transform, however the problems are:&lt;/P&gt;&lt;P&gt;1. Got ERROR: the ID value "XXX" occurs twice in the input data set. (If use LET, SAS will delete duplicate data which I do not want)&lt;/P&gt;&lt;P&gt;2. In the original data, the value of variable F are integers 1 to 99, however there might not have all these 99 numbers so after the transpose the variables could become something like F30 to F88 (less than 99 F variables).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope my description has enough detail and understandable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Eric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 19:45:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95942#M1024</guid>
      <dc:creator>Nehcour0420</dc:creator>
      <dc:date>2012-08-16T19:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observations into variables</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95943#M1025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is the example helpful:&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input id sex $ age;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 f 1&lt;/P&gt;&lt;P&gt;1 f 2&lt;/P&gt;&lt;P&gt;1 f 3&lt;/P&gt;&lt;P&gt;1 f 4&lt;/P&gt;&lt;P&gt;1 f 5&lt;/P&gt;&lt;P&gt;1 f 6&lt;/P&gt;&lt;P&gt;2 m 1&lt;/P&gt;&lt;P&gt;2 m 2&lt;/P&gt;&lt;P&gt;2 m 3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want(drop=age);&lt;/P&gt;&lt;P&gt;retain id sex age1-age6;&lt;/P&gt;&lt;P&gt;array _var(*) age1-age6;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;_var(age)=age;&lt;/P&gt;&lt;P&gt;if last.id then do; output; call missing(of _var(*));end;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have2;&lt;/P&gt;&lt;P&gt;input id sex $ age weight;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 f 1 20&lt;/P&gt;&lt;P&gt;1 f 2 21&lt;/P&gt;&lt;P&gt;1 f 3 22 &lt;/P&gt;&lt;P&gt;1 f 4 23&lt;/P&gt;&lt;P&gt;1 f 5 25&lt;/P&gt;&lt;P&gt;1 f 6 26&lt;/P&gt;&lt;P&gt;2 m 1 18 &lt;/P&gt;&lt;P&gt;2 m 2 19 &lt;/P&gt;&lt;P&gt;2 m 3 40&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want2(drop=age weight);&lt;/P&gt;&lt;P&gt;retain id sex age1-age6;&lt;/P&gt;&lt;P&gt;array _var(*) age1-age6;&lt;/P&gt;&lt;P&gt;set have2;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;_var(age)=weight;&lt;/P&gt;&lt;P&gt;if last.id then do; output; call missing(of _var(*));end;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 19:59:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95943#M1025</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-08-16T19:59:54Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observations into variables</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95944#M1026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure I understand what you are trying to do.&amp;nbsp; It appears like you want to put all up to 99 instances of variable G onto one line.&amp;nbsp; However, that assumes that variables a thru e have the same values on all records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It would help if you provided the code that you tried and a bit more of an explanation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 20:00:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95944#M1026</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-08-16T20:00:26Z</dc:date>
    </item>
    <item>
      <title>Re: Convert observations into variables</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95945#M1027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Subject to all the questions that you have seen about your data and objectives, this might be what you are looking for:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array fvalues {99} f1-f99;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.e);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by a b c d e;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fvalues{f} = g;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; drop f g;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will not detect how many times the same F appears within a grouping of A/B/C/D/E.&amp;nbsp; If there are duplicates, it will merely replace the old value with the new.&amp;nbsp; If you have duplicates, but want to save both of them, the data structure that you described is not capable of holding all the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 20:36:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Convert-observations-into-variables/m-p/95945#M1027</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-08-16T20:36:26Z</dc:date>
    </item>
  </channel>
</rss>

