<?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 Proc transpose in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240680#M44444</link>
    <description>&lt;P&gt;I have a large&amp;nbsp;claims databases with&amp;nbsp;four diagnosis codes per claim. &amp;nbsp;The data looks like this: &amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp;CLAIM_ID &amp;nbsp; DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DX2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX4&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7804 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;101 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30921 &amp;nbsp; &amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 102 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30943 &amp;nbsp; &amp;nbsp; 902 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01920&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 103 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 011&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 104 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4530&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 105 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; V9090&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 106 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 107 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 108 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; E884 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0930 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1092 &amp;nbsp; &amp;nbsp; &amp;nbsp;0930&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 109 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3094&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; infile datalines dlm="," missover;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; input id claim_id date $ dx1 $ dx2 $ dx3 $ dx4 $;&lt;/P&gt;
&lt;P&gt;datalines;&lt;/P&gt;
&lt;P&gt;1,100,1/1/2015,7804,,&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1,101,1/1/2015,30921,39021,,&lt;/P&gt;
&lt;P&gt;1,102,2/1/2015,30943,902,01920,&lt;/P&gt;
&lt;P&gt;1,103,3/1/2015,011,,,&lt;/P&gt;
&lt;P&gt;2,104,4/1/2015,4530,,,&lt;/P&gt;
&lt;P&gt;2,105,5/1/2015,V9090,,,&lt;/P&gt;
&lt;P&gt;3,106,6/1/2015,7039,,,&lt;/P&gt;
&lt;P&gt;3,107,6/1/2015,7039,,,&lt;/P&gt;
&lt;P&gt;3,108,6/1/2015,E884,0930,1092,0930&lt;/P&gt;
&lt;P&gt;3,109,7/1/2015,3094,,,&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want&amp;nbsp;to create a dataset that has all of the *unique* diagnosis codes that occurred on claims during the same day for a given individual, as below (I don't care about whether it was DX1, DX2, DX3, or DX4). &amp;nbsp;This would involve using proc transpose somehow to create a series of variables that I might call "DXS1-DXS5" (in this fake example, five variables would be created but it would in reality be way more). &amp;nbsp;I've been playing with the syntax of proc transpose and can't get this work, though. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp;CLAIM_ID &amp;nbsp; DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DX1 &amp;nbsp; &amp;nbsp; DX2 &amp;nbsp; &amp;nbsp;DX3 &amp;nbsp; &amp;nbsp;DX4&amp;nbsp;&amp;nbsp; DXS1&amp;nbsp;&amp;nbsp; DXS2&amp;nbsp;&amp;nbsp; DXS3&amp;nbsp;&amp;nbsp; DXS4&amp;nbsp;&amp;nbsp; DXS5&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7804 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7804&amp;nbsp;&amp;nbsp;&amp;nbsp; 30921&amp;nbsp;&amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;101 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30921 &amp;nbsp;39021&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7804&amp;nbsp;&amp;nbsp;&amp;nbsp; 30921&amp;nbsp;&amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 102 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30943 &amp;nbsp;902 &amp;nbsp; &amp;nbsp; 01920&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30943&amp;nbsp; 902 &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 01920&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 103 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 011&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 104 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4530&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4530&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 105 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; V9090&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; V9090&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 106 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7039 &amp;nbsp;&amp;nbsp;E884 &amp;nbsp;&amp;nbsp; &amp;nbsp;0930&amp;nbsp; &amp;nbsp;&amp;nbsp;1092 &amp;nbsp; &amp;nbsp;0930&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 107 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7039&amp;nbsp;&amp;nbsp; E884 &amp;nbsp;&amp;nbsp;&amp;nbsp; 0930&amp;nbsp;&amp;nbsp;&amp;nbsp; 1092 &amp;nbsp; &amp;nbsp;0930&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 108 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; E884 &amp;nbsp;&amp;nbsp; 0930 &amp;nbsp;1092 &amp;nbsp; 0930&amp;nbsp;&amp;nbsp; 7039&amp;nbsp;&amp;nbsp; E884 &amp;nbsp;&amp;nbsp;&amp;nbsp; 0930&amp;nbsp;&amp;nbsp;&amp;nbsp; 1092 &amp;nbsp; &amp;nbsp;0930&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 109 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3094&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3094&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd appreciate suggestions on how to proceed. &amp;nbsp;Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 23 Dec 2015 18:21:46 GMT</pubDate>
    <dc:creator>chuakp</dc:creator>
    <dc:date>2015-12-23T18:21:46Z</dc:date>
    <item>
      <title>Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240680#M44444</link>
      <description>&lt;P&gt;I have a large&amp;nbsp;claims databases with&amp;nbsp;four diagnosis codes per claim. &amp;nbsp;The data looks like this: &amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp;CLAIM_ID &amp;nbsp; DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DX2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DX4&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7804 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;101 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30921 &amp;nbsp; &amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 102 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30943 &amp;nbsp; &amp;nbsp; 902 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01920&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 103 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 011&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 104 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4530&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 105 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; V9090&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 106 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 107 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 108 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; E884 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0930 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1092 &amp;nbsp; &amp;nbsp; &amp;nbsp;0930&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 109 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3094&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; infile datalines dlm="," missover;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; input id claim_id date $ dx1 $ dx2 $ dx3 $ dx4 $;&lt;/P&gt;
&lt;P&gt;datalines;&lt;/P&gt;
&lt;P&gt;1,100,1/1/2015,7804,,&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1,101,1/1/2015,30921,39021,,&lt;/P&gt;
&lt;P&gt;1,102,2/1/2015,30943,902,01920,&lt;/P&gt;
&lt;P&gt;1,103,3/1/2015,011,,,&lt;/P&gt;
&lt;P&gt;2,104,4/1/2015,4530,,,&lt;/P&gt;
&lt;P&gt;2,105,5/1/2015,V9090,,,&lt;/P&gt;
&lt;P&gt;3,106,6/1/2015,7039,,,&lt;/P&gt;
&lt;P&gt;3,107,6/1/2015,7039,,,&lt;/P&gt;
&lt;P&gt;3,108,6/1/2015,E884,0930,1092,0930&lt;/P&gt;
&lt;P&gt;3,109,7/1/2015,3094,,,&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want&amp;nbsp;to create a dataset that has all of the *unique* diagnosis codes that occurred on claims during the same day for a given individual, as below (I don't care about whether it was DX1, DX2, DX3, or DX4). &amp;nbsp;This would involve using proc transpose somehow to create a series of variables that I might call "DXS1-DXS5" (in this fake example, five variables would be created but it would in reality be way more). &amp;nbsp;I've been playing with the syntax of proc transpose and can't get this work, though. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp;CLAIM_ID &amp;nbsp; DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DX1 &amp;nbsp; &amp;nbsp; DX2 &amp;nbsp; &amp;nbsp;DX3 &amp;nbsp; &amp;nbsp;DX4&amp;nbsp;&amp;nbsp; DXS1&amp;nbsp;&amp;nbsp; DXS2&amp;nbsp;&amp;nbsp; DXS3&amp;nbsp;&amp;nbsp; DXS4&amp;nbsp;&amp;nbsp; DXS5&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7804 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7804&amp;nbsp;&amp;nbsp;&amp;nbsp; 30921&amp;nbsp;&amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;101 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30921 &amp;nbsp;39021&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7804&amp;nbsp;&amp;nbsp;&amp;nbsp; 30921&amp;nbsp;&amp;nbsp; 39021&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 102 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 30943 &amp;nbsp;902 &amp;nbsp; &amp;nbsp; 01920&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30943&amp;nbsp; 902 &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 01920&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 103 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 011&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 104 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4530&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4530&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 105 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; V9090&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; V9090&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 106 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7039 &amp;nbsp;&amp;nbsp;E884 &amp;nbsp;&amp;nbsp; &amp;nbsp;0930&amp;nbsp; &amp;nbsp;&amp;nbsp;1092 &amp;nbsp; &amp;nbsp;0930&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 107 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7039&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7039&amp;nbsp;&amp;nbsp; E884 &amp;nbsp;&amp;nbsp;&amp;nbsp; 0930&amp;nbsp;&amp;nbsp;&amp;nbsp; 1092 &amp;nbsp; &amp;nbsp;0930&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 108 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; E884 &amp;nbsp;&amp;nbsp; 0930 &amp;nbsp;1092 &amp;nbsp; 0930&amp;nbsp;&amp;nbsp; 7039&amp;nbsp;&amp;nbsp; E884 &amp;nbsp;&amp;nbsp;&amp;nbsp; 0930&amp;nbsp;&amp;nbsp;&amp;nbsp; 1092 &amp;nbsp; &amp;nbsp;0930&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 109 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7/1/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3094&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3094&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd appreciate suggestions on how to proceed. &amp;nbsp;Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Dec 2015 18:21:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240680#M44444</guid>
      <dc:creator>chuakp</dc:creator>
      <dc:date>2015-12-23T18:21:46Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240683#M44447</link>
      <description>Your moving diagnosis from one record to another because its the same day? What's the point of keeping multiple records per day?&lt;BR /&gt;</description>
      <pubDate>Wed, 23 Dec 2015 18:32:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240683#M44447</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-12-23T18:32:05Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240684#M44448</link>
      <description>&lt;P&gt;You need to calculate the daily separately and then merge it back in.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines dlm="," truncover;
  input id claim_id date $ dx1 $ dx2 $ dx3 $ dx4 $;
datalines;
1,100,1/1/2015,7804,,  
1,101,1/1/2015,30921,39021,,
1,102,2/1/2015,30943,902,01920,
1,103,3/1/2015,011,,,
2,104,4/1/2015,4530,,,
2,105,5/1/2015,V9090,,,
3,106,6/1/2015,7039,,,
3,107,6/1/2015,7039,,,
3,108,6/1/2015,E884,0930,1092,0930
3,109,7/1/2015,3094,,,
;
run;

proc transpose data=have out=flipped(rename=col1=dx);
by id claim_id date;
var dx1-dx4;
run;

proc sort data=flipped nodupkey out=flipped_unique (where=(not missing(dx)) drop=claim_id);
by id date dx;
run;

data id;
set flipped_unique;
by id date;
if first.date then count=1; else count+1;
name=cats("dxs", count);
run;

proc transpose data=id out=wide_daily(drop=_name_);
by id date;
id name;
var dx;
run;

proc sql;
create table want as
select a.*, b.*
from have as a
left join wide_daily as b
on a.id=b.id and a.date=b.date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 23 Dec 2015 18:38:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240684#M44448</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-12-23T18:38:46Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240685#M44449</link>
      <description>&lt;P&gt;I would recommend that you first create a data set of all the DXS values, and then merge it back in.&amp;nbsp; Here is one way (assuming DX1-DX4 are character):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data dxs;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;array dx {4};&lt;/P&gt;
&lt;P&gt;do i=1 to 4;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if dx{i} &amp;gt; ' ' then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; diagnosis = dx{i};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;keep ID diagnosis date;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sort data=dxs nodupkey;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by id date diagnosis;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At this point, you can transpose the unique diagnosis values back into a single observation per ID, with as many DXS variables as needed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc transpose data=dxs&amp;nbsp; prefix='dxs' out=dxs_per_id (drop=_name_);&lt;/P&gt;
&lt;P&gt;var diagnosis;&lt;/P&gt;
&lt;P&gt;by id date;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then all that is left to do is to merge it back in.&amp;nbsp; Assuming your original data set is sorted:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;merge have dxs_per_id;&lt;/P&gt;
&lt;P&gt;by id date;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code is untested, but should be fine.&amp;nbsp; Write back if it causes any problems.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Good luck.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Dec 2015 18:41:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240685#M44449</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-12-23T18:41:09Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240708#M44456</link>
      <description>&lt;P&gt;Thank you. &amp;nbsp;This works. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One last question - how would I create a global macro variable that has the number of DXS diagnoses in the file? &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Dec 2015 21:16:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240708#M44456</guid>
      <dc:creator>chuakp</dc:creator>
      <dc:date>2015-12-23T21:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240712#M44457</link>
      <description>&lt;P&gt;There are a few ways ... here's one that meshes well with your program:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;set dxs_per_id;&lt;/P&gt;
&lt;P&gt;array dxs {*} dxs:;&lt;/P&gt;
&lt;P&gt;call symputx('n_dxs_vars', dim(dxs));&lt;/P&gt;
&lt;P&gt;stop;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think the best place to put this would be right after PROC TRANSPOSE creates DXS_PER_ID.&amp;nbsp; It would be important to call the variable that you are transposing DIAGNOSIS (or at least any name that does not begin with DXS).&amp;nbsp; The list DXS: is actually all variable names that begin with "DXS".&lt;/P&gt;</description>
      <pubDate>Wed, 23 Dec 2015 21:23:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240712#M44457</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-12-23T21:23:23Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240888#M44537</link>
      <description>&lt;P&gt;Thanks so much.&lt;/P&gt;</description>
      <pubDate>Sat, 26 Dec 2015 15:23:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose/m-p/240888#M44537</guid>
      <dc:creator>chuakp</dc:creator>
      <dc:date>2015-12-26T15:23:45Z</dc:date>
    </item>
  </channel>
</rss>

