<?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: Restructuring a Data Set for Cross Tabulation in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164572#M31801</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Definitely on its way ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Look at the transposed data sets.&amp;nbsp; You will see the maximum number of "first" products you have for any ID, and the maximum number of "later" products for any ID.&amp;nbsp; Let's say it's 5 and 9.&amp;nbsp; You will need to add to your final DATA step after the MERGE statement.&amp;nbsp; Use arrays for find all the pairs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;array firsts {5} first1-first5;&lt;/P&gt;&lt;P&gt;array laters {9} later1-later5;&lt;/P&gt;&lt;P&gt;array flags {9} flag1-flag9;&lt;/P&gt;&lt;P&gt;do i=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if firsts{i} &amp;gt; ' '&amp;nbsp; then do j=1 to 9;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if later{j} = 'prod1' then flag1=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod2' then flag2=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod9' then flag9=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j=9 then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This might give you the middle result you need, or it might just be close ... you will have to take a look and decide.&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>Tue, 30 Sep 2014 01:37:33 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2014-09-30T01:37:33Z</dc:date>
    <item>
      <title>Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164567#M31796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I need to restructure a data set in order to produce a cross tab output/data set. . The question I'm trying to answer is&amp;nbsp; what additional products were purchased after initial sign up purchases and what are the product combinations -&amp;nbsp; So, if&amp;nbsp; a customer bought prod3 at signup they also eventually bought prod2 and prod4 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data set I start with looks like this. Notice some of the product purchases dates are the same as the startup date.&amp;nbsp; &lt;/P&gt;&lt;TABLE border="1" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="width: 393px; border: 1px solid #000000;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl66" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="35"&gt;&lt;STRONG&gt;ID &lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="105"&gt;&lt;STRONG&gt;Signup_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;&lt;STRONG&gt;Prod_type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="139"&gt;&lt;STRONG&gt;Purchase_Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod1&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod2&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod3&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod5&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4-Aug-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod2&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;13-Sep-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod3&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod4&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Nov-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;prod5&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;12-Jun-14&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to restructure the data set so it looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="width: 678px; border: 1px solid #000000;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;&lt;STRONG&gt;ID &lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;&lt;STRONG&gt;startup_month&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;&lt;STRONG&gt;Poducts&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;&lt;STRONG&gt;&lt;STRONG&gt;Purchase_at_&lt;/STRONG&gt;Start_Up&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="92"&gt;&lt;STRONG&gt;prod1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod2&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod3&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod4&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="78"&gt;&lt;STRONG&gt;prod5&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod1&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;1&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod2&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;1&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl71" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl71" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod3&lt;/TD&gt;&lt;TD class="xl71" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;1&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl73" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl73" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod4&lt;/TD&gt;&lt;TD class="xl73" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;&lt;/TD&gt;&lt;TD class="xl74" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl74" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl74" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl74" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl74" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2232&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod5&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl67" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod1&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl68" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl69" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod2&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl70" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl71" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl71" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod3&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl72" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl75" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl75" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod4&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl76" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;4545&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod5&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And then a summary data set which gives the totals/counts&amp;nbsp; of the product combinations&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" cellpadding="0" cellspacing="0" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;NaN&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="width: 678px; border: 1px solid #000000;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;&lt;STRONG&gt;Startup_month&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;&lt;STRONG&gt;Poducts&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="114"&gt;&lt;STRONG&gt;&lt;STRONG&gt;Purchase_&lt;/STRONG&gt;Start_up_count&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="92"&gt;&lt;STRONG&gt;prod1_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod2_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod3_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="64"&gt;&lt;STRONG&gt;prod4_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="78"&gt;&lt;STRONG&gt;prod5_dt&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod2&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod3&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod4&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;June&lt;/TD&gt;&lt;TD class="xl66" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;" width="101"&gt;prod5&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;&lt;/TD&gt;&lt;TD class="xl65" style="color: #575757; text-align: left; padding: 0px; font-family: arial, helvetica, sans-serif; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm having trouble visualizing how to program for this. I'm been using different combinations of proc transpose and proc freq but&amp;nbsp; I can't come close to the desired output.&amp;nbsp; Any help is greatly appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 18:15:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164567#M31796</guid>
      <dc:creator>RobertNYC</dc:creator>
      <dc:date>2014-09-29T18:15:36Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164568#M31797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Since you mention that you already tried PROC TRANSPOSE, I'll give you the steps without a tremendous amount of detail ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Remove any records with a missing purchase date.&lt;/P&gt;&lt;P&gt;2. For each customer, find the earliest date.&lt;/P&gt;&lt;P&gt;3. Create two SAS data sets.&amp;nbsp; One holds all purchases on the earliest date (and includes the calculated variable Startup_month).&amp;nbsp; The other holds all later purchases.&lt;/P&gt;&lt;P&gt;4. Transpose PROD_TYPE in each data set, using different prefixes (such as "first_" and "later_").&lt;/P&gt;&lt;P&gt;5. Merge by customer.&lt;/P&gt;&lt;P&gt;6. Take a look at that point ... and make decisions about how to handle multiple purchases of the same product.&amp;nbsp; Array processing should be fairly straightforward but will have to pay attention to missing values caused by transposing.&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>Mon, 29 Sep 2014 19:49:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164568#M31797</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-09-29T19:49:13Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164569#M31798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you astounding. I'm a little confused as to what to transpose. Do I transpose both the first and later data sets or just the later data set?? Below is what I have so far -&amp;nbsp; any additional feedback will be greatly appreciated.&amp;nbsp; Thanks!!! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Remove any records with a missing purchase date.*/&lt;/P&gt;&lt;P&gt;/* Identify earliest purchase date */&lt;/P&gt;&lt;P&gt;/*The earliest purchase date is the same as the&amp;nbsp; signup date */&lt;/P&gt;&lt;P&gt;proc sql; &lt;/P&gt;&lt;P&gt;create table have1 as &lt;/P&gt;&lt;P&gt;select&lt;/P&gt;&lt;P&gt;ID, &lt;/P&gt;&lt;P&gt;Signup_dt, &lt;/P&gt;&lt;P&gt;Prod_type, &lt;/P&gt;&lt;P&gt;Purchase_Date&lt;/P&gt;&lt;P&gt;case when Signup_dt=Purchase_Date&lt;/P&gt;&lt;P&gt; then 1 else 0 end as Frist&lt;/P&gt;&lt;P&gt;from have where Purchase_Date ne . ; &lt;/P&gt;&lt;P&gt;quit; &lt;/P&gt;&lt;P&gt;/*create data set with just earliest Purchase_Date .*/&lt;/P&gt;&lt;P&gt;proc sql; &lt;/P&gt;&lt;P&gt;create table earliest as &lt;/P&gt;&lt;P&gt;select &lt;/P&gt;&lt;P&gt;ID,&lt;/P&gt;&lt;P&gt;month(Signup_dt) as Startup_month, &lt;/P&gt;&lt;P&gt;Prod_type,&lt;/P&gt;&lt;P&gt;from have2&lt;/P&gt;&lt;P&gt;where Frist=1;&lt;/P&gt;&lt;P&gt;quit; &lt;/P&gt;&lt;P&gt;/*create data set with&amp;nbsp; all later purchases .*/&lt;/P&gt;&lt;P&gt;proc sql; &lt;/P&gt;&lt;P&gt;create table later&amp;nbsp; as &lt;/P&gt;&lt;P&gt;select &lt;/P&gt;&lt;P&gt;ID,&lt;/P&gt;&lt;P&gt;Prod_type,&lt;/P&gt;&lt;P&gt;Frist&lt;/P&gt;&lt;P&gt;from have2&lt;/P&gt;&lt;P&gt;where Frist=0;&lt;/P&gt;&lt;P&gt;quit; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=later; &lt;/P&gt;&lt;P&gt;by Prod_type ID ; &lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=later out=later2;&lt;/P&gt;&lt;P&gt;by Product_type ; &lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 21:03:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164569#M31798</guid>
      <dc:creator>RobertNYC</dc:creator>
      <dc:date>2014-09-29T21:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164570#M31799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robert,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Both data sets get transposed:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BY ID;&lt;/P&gt;&lt;P&gt;VAR PROD_TYPE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The "first" data set should keep the month around, probably adding an ID statement to do that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Both transposed data sets should have one observation per ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When transposing, you will need to add the PREFIX= option so the new variables in the transposed "first" data set are named something like "First_1", "First_2", "First_3", etc.&amp;nbsp; And the new variables in the transposed "later" data set should be named "Later_1", "Later_2", "Later_3", etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It will always help to test a PROC TRANSPOSE and examine the results, then tweak the program a little (such as adding a PREFIX= option) and repeat.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 21:20:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164570#M31799</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-09-29T21:20:55Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164571#M31800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok... I'm getting there...I'm not sure what to do after the merge?? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=earliest; &lt;/P&gt;&lt;P&gt;BY&amp;nbsp; ID Startup_month;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=earliest out=first PREFIX=first; &lt;/P&gt;&lt;P&gt;BY ID Startup_month;&lt;/P&gt;&lt;P&gt;VAR Product_type&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;;run; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;proc sort data=later; &lt;/P&gt;&lt;P&gt;BY&amp;nbsp; ID ;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;proc transpose data=later out=later2 PREFIX=later; &lt;/P&gt;&lt;P&gt;BY ID;&lt;/P&gt;&lt;P&gt;VAR Product_type&lt;/P&gt;&lt;P&gt;;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;run; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Proc sort data= later2; &lt;/P&gt;&lt;P&gt;by id; &lt;/P&gt;&lt;P&gt;Proc sort data= earliest; &lt;/P&gt;&lt;P&gt;by id; run; &lt;/P&gt;&lt;P&gt;data both;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; merge first later2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 22:00:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164571#M31800</guid>
      <dc:creator>RobertNYC</dc:creator>
      <dc:date>2014-09-29T22:00:53Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164572#M31801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Definitely on its way ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Look at the transposed data sets.&amp;nbsp; You will see the maximum number of "first" products you have for any ID, and the maximum number of "later" products for any ID.&amp;nbsp; Let's say it's 5 and 9.&amp;nbsp; You will need to add to your final DATA step after the MERGE statement.&amp;nbsp; Use arrays for find all the pairs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;array firsts {5} first1-first5;&lt;/P&gt;&lt;P&gt;array laters {9} later1-later5;&lt;/P&gt;&lt;P&gt;array flags {9} flag1-flag9;&lt;/P&gt;&lt;P&gt;do i=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if firsts{i} &amp;gt; ' '&amp;nbsp; then do j=1 to 9;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if later{j} = 'prod1' then flag1=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod2' then flag2=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod9' then flag9=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j=9 then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This might give you the middle result you need, or it might just be close ... you will have to take a look and decide.&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>Tue, 30 Sep 2014 01:37:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164572#M31801</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-09-30T01:37:33Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164573#M31802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks again astounding. I used your array example and yes I'm getting close to the output .&amp;nbsp; Also, I tried to program it a different way as well (below)&amp;nbsp; and I think&amp;nbsp; I'm getting the correct output. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; For your example, I still need to condense all the "first" variables into one and transform&amp;nbsp; the "later" variables -&amp;nbsp; I could not figure out how to do that. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;array first {11} first1-first11;&lt;/P&gt;&lt;P&gt;array later {11} later1-later11;&lt;/P&gt;&lt;P&gt;array flags {16} flag1-flag16;&lt;/P&gt;&lt;P&gt;do i=1 to 11;&lt;/P&gt;&lt;P&gt; if first{i} &amp;gt; ' '&amp;nbsp; then do j=1 to 11;&lt;/P&gt;&lt;P&gt; if later{j} = 'Prod1' then flag1=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'Prod2' then flag2=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'Prod3' then flag3=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'Prod4' then flag4=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'Prod5' then flag5=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'Prod6' then flag6=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod7' then flag7=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod8' then flag8=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if later{j} = 'prod9' then flag9=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod10' then flag10=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if later{j} = 'prod11' then flag11=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod12' then flag12=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if later{j} = 'prod13' then flag12=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod14' then flag13=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod15' then flag14=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod16' then flag15=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if later{j} = 'prod17' then flag14=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if later{j} = 'prod18' then flag15=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if later{j} = 'prod19' then flag16=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I seem to be getting the output I'm looking for (before summarizing the results)&amp;nbsp; just by using the program below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Create month variable and check if purchased at signup */&lt;/P&gt;&lt;P&gt;data want1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; startup_month = strip(put(Signup_dt, monname9.));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Signup_dt = Purchase_Date then Purchase_at_Start_Up = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop Purchase_Date Signup_dt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;/* Create dummy flag for transpose*/ &lt;/P&gt;&lt;P&gt;data have1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Purchase_Date then flag = 1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;/* Transpose to get product variables by ID */&lt;/P&gt;&lt;P&gt;proc transpose data = have1 out = want2 (drop =&amp;nbsp; _NAME_);&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id Prod_type;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var flag;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;/* Combine the two */&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge want1 want2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by ID;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;proc sort data=want;&lt;/P&gt;&lt;P&gt;by id; &lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Sep 2014 14:54:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164573#M31802</guid>
      <dc:creator>RobertNYC</dc:creator>
      <dc:date>2014-09-30T14:54:20Z</dc:date>
    </item>
    <item>
      <title>Re: Restructuring a Data Set for Cross Tabulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164574#M31803</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, actually. When I sum my results I don't get the totals of the combinations of products just&amp;nbsp; totals by month for each product. So, I've got to keep on with this. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Sep 2014 15:05:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Restructuring-a-Data-Set-for-Cross-Tabulation/m-p/164574#M31803</guid>
      <dc:creator>RobertNYC</dc:creator>
      <dc:date>2014-09-30T15:05:20Z</dc:date>
    </item>
  </channel>
</rss>

