<?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: Converting a egular SAS data set into a transactional data set for market basket analysis in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966508#M376147</link>
    <description>&lt;P&gt;Do you want a CSV file like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1 PSR=3
A,2,AI_Pace=1 BOARD=2
B,1,AI_Pace=1 PSR=2 cPWR=2 RTG=2
&lt;/PRE&gt;
&lt;P&gt;Then just add the DSD option to the FILE statament.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1,PSR=3
A,2,AI_Pace=1,BOARD=2
B,1,AI_Pace=1,PSR=2,cPWR=2,RTG=2
&lt;/PRE&gt;
&lt;P&gt;Then don't add DSD option but instead write the commas before writing ID and the measures.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  put hosp ',' id @;
  do over measures;
    if not missing(measures) then put +(-1) ',' measures= @;
  end;
  put;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or worse like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1,PSR=3,,
A,2,AI_Pace=1,BOARD=2,,
B,1,AI_Pace=1,PSR=2,cPWR=2,RTG=2&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;For that you might want to keep track of how many non missing you found and then write the correct number of commas at the end.&lt;/P&gt;</description>
    <pubDate>Wed, 14 May 2025 18:27:49 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2025-05-14T18:27:49Z</dc:date>
    <item>
      <title>Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966500#M376143</link>
      <description>&lt;P&gt;I have a data set of ~10K hospital visits. Each observation has about 60 variables describing the patient. Below is a mock sample of a small part of the data set.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Hosp&lt;/TD&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;AI_Pace&lt;/TD&gt;&lt;TD&gt;PSR&lt;/TD&gt;&lt;TD&gt;cPWR&lt;/TD&gt;&lt;TD&gt;RTG&lt;/TD&gt;&lt;TD&gt;BOARD&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd like to transform this data into a set of transactions, almost as if every patient were a consumer at a store. Below is the data set above transformed into what I'd like. Please note that if a patient doesn't have any columns marked, then they are deleted. Thanks!!!!! Andrew&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Hosp&lt;/TD&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AI_PACE = 1&lt;/TD&gt;&lt;TD&gt;PSR=3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AI_PACE = 1&lt;/TD&gt;&lt;TD&gt;BOARD = 2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AI_PACE = 1&lt;/TD&gt;&lt;TD&gt;PSR = 2&lt;/TD&gt;&lt;TD&gt;cPWR = 2&lt;/TD&gt;&lt;TD&gt;RTG = 2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AI_PACE = 2&lt;/TD&gt;&lt;TD&gt;PSR = 1&lt;/TD&gt;&lt;TD&gt;cPWR = 1&lt;/TD&gt;&lt;TD&gt;RTG = 1&lt;/TD&gt;&lt;TD&gt;BOARD = 3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;AI_PACE = 3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AI_PACE = 2&lt;/TD&gt;&lt;TD&gt;cPWR = 1&lt;/TD&gt;&lt;TD&gt;BOARD = 1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;AI_PACE = 2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;PSR = 2&lt;/TD&gt;&lt;TD&gt;cPWR = 3&lt;/TD&gt;&lt;TD&gt;RTG = 2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;BOARD =2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;AI_PACE = 3&lt;/TD&gt;&lt;TD&gt;BOARD = 1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AI_PACE = 3&lt;/TD&gt;&lt;TD&gt;RTG = 3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;AI_PACE = 1&lt;/TD&gt;&lt;TD&gt;PSR = 1&lt;/TD&gt;&lt;TD&gt;cPWR = 1&lt;/TD&gt;&lt;TD&gt;BOARD = 3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 14 May 2025 16:01:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966500#M376143</guid>
      <dc:creator>DocMartin</dc:creator>
      <dc:date>2025-05-14T16:01:22Z</dc:date>
    </item>
    <item>
      <title>Re: Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966501#M376144</link>
      <description>&lt;P&gt;Do you want a DATASET or a FILE?&lt;/P&gt;
&lt;P&gt;A FILE is probably simpler (and more useful??).&lt;/P&gt;
&lt;P&gt;First let's convert your LISTING back into an actual SAS dataset.&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  infile cards dsd dlm='|' truncover;
  input Hosp $ id AI_Pace PSR cPWR RTG BOARD;
cards;
A|1|1|3| | | 
A|2|1| | | |2
B|1|1|2|2|2| 
B|2|2|1|1|1|3
B|3|3| | | | 
B|4|2| |1| |1
B|5| | | | | 
B|6|2| | | | 
C|1| |2|3|2| 
C|2| | | | |2
C|3|3| | | |1
C|4|3| | |3| 
C|5| | | | | 
C|6|1|1|1| |3
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;Since all of those variables are numeric you can use and ARRAY to handle them.&lt;/P&gt;
&lt;P&gt;Let's write to a temporary file for testing.&amp;nbsp; Just change the FILENAME statement to write to a permanent file.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename trans temp;
data _null_;
  file trans;
  set have ;
  array measures AI_Pace PSR cPWR RTG BOARD;
  if n(of measures[*]);
  put hosp id @;
  do over measures;
    if not missing(measures) then put measures= @;
  end;
  put;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This produces a file like this for the example input:&lt;/P&gt;
&lt;PRE&gt;A 1 AI_Pace=1 PSR=3
A 2 AI_Pace=1 BOARD=2
B 1 AI_Pace=1 PSR=2 cPWR=2 RTG=2
B 2 AI_Pace=2 PSR=1 cPWR=1 RTG=1 BOARD=3
B 3 AI_Pace=3
B 4 AI_Pace=2 cPWR=1 BOARD=1
B 6 AI_Pace=2
C 1 PSR=2 cPWR=3 RTG=2
C 2 BOARD=2
C 3 AI_Pace=3 BOARD=1
C 4 AI_Pace=3 RTG=3
C 6 AI_Pace=1 PSR=1 cPWR=1 BOARD=3
&lt;/PRE&gt;
&lt;P&gt;Which is something you could read back into SAS using NAMED input statement.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
  length Hosp $8 id AI_Pace PSR cPWR RTG BOARD 8;
  infile trans ;
  input Hosp $ id (AI_Pace -- BOARD) (=) ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Which produces the same data (only missing the observations with no transactions).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc compare data=have compare=test;
 id hosp id;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Observation Summary                                                           
                                                                              
Observation      Base  Compare  ID                                            
                                                                              
First Obs           1        1  Hosp=A id=1                                   
Last  Obs          14       12  Hosp=C id=6                                   
                                                                              
Number of Observations in Common: 12.                                         
Number of Observations in WORK.HAVE but not in WORK.TEST: 2.                  
Total Number of Observations Read from WORK.HAVE: 14.                         
Total Number of Observations Read from WORK.TEST: 12.                         
                                                                              
Number of Observations with Some Compared Variables Unequal: 0.               
Number of Observations with All Compared Variables Equal: 12.                 
                                                                              
NOTE: No unequal values were found.  &lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 May 2025 16:23:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966501#M376144</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-05-14T16:23:29Z</dc:date>
    </item>
    <item>
      <title>Re: Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966506#M376145</link>
      <description>&lt;P&gt;I should have said that I wanted to write to a CSV file .&lt;/P&gt;&lt;P&gt;Here's what I ran, with a few lines of output shown:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;filename mba;

data _null_;
  file mba;
  set mba1 ;
  array measures AI_Pace PSR cPWR RTG itm;
  if n(of measures[*]);
  put race prg @;
  do over measures;
    if not missing(measures) then put measures= @;
  end;
  put;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 1 AI_Pace=1&lt;BR /&gt;1 3 AI_Pace=1 ITM=2&lt;BR /&gt;1 4 AI_Pace=1&lt;BR /&gt;1 6 AI_Pace=2 ITM=3&lt;BR /&gt;1 7 AI_Pace=2&lt;BR /&gt;1 8 AI_Pace=2 ITM=1&lt;BR /&gt;2 1 AI_Pace=9&lt;BR /&gt;2 2 AI_Pace=2&lt;BR /&gt;2 3 AI_Pace=9&lt;BR /&gt;2 4 AI_Pace=9&lt;BR /&gt;2 6 AI_Pace=9&lt;BR /&gt;2 7 AI_Pace=9&lt;BR /&gt;2 8 AI_Pace=9&lt;BR /&gt;2 9 AI_Pace=9 ITM=2&lt;BR /&gt;2 10 AI_Pace=3 ITM=1&lt;BR /&gt;2 11 AI_Pace=3&lt;BR /&gt;2 12 AI_Pace=9&lt;BR /&gt;2 13 AI_Pace=1 ITM=3&lt;BR /&gt;3 1 AI_Pace=1 ITM=1&lt;BR /&gt;3 2 AI_Pace=2&lt;BR /&gt;3 3 AI_Pace=2 ITM=3&lt;BR /&gt;3 4 AI_Pace=1&lt;BR /&gt;3 5 AI_Pace=2&lt;BR /&gt;3 6 AI_Pace=9&lt;BR /&gt;3 7 AI_Pace=3 ITM=2&lt;BR /&gt;4 1 AI_Pace=9 ITM=2&lt;BR /&gt;4 2 AI_Pace=3 ITM=3&lt;BR /&gt;4 3 AI_Pace=1 ITM=1&lt;BR /&gt;4 5 AI_Pace=3&lt;BR /&gt;4 6 AI_Pace=1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For some reason, all I'm getting are AI_Line and ITM. Do you know what might be occurring?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;Andrew&lt;/P&gt;</description>
      <pubDate>Wed, 14 May 2025 18:03:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966506#M376145</guid>
      <dc:creator>DocMartin</dc:creator>
      <dc:date>2025-05-14T18:03:43Z</dc:date>
    </item>
    <item>
      <title>Re: Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966507#M376146</link>
      <description>&lt;P&gt;Most likely you used the wrong variable names in your ARRAY statement.&amp;nbsp; That would cause SAS to make NEW variables that will always be empty, and so not appear in the output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you know the order they appear in the dataset (use the VARNUM option on PROC CONTENTS) you can use a positional variable list.&amp;nbsp; Then you only need to get two of the variable names right, the first and last.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;array measures First_var_name -- Name_of_last_var ;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 14 May 2025 18:19:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966507#M376146</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-05-14T18:19:15Z</dc:date>
    </item>
    <item>
      <title>Re: Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966508#M376147</link>
      <description>&lt;P&gt;Do you want a CSV file like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1 PSR=3
A,2,AI_Pace=1 BOARD=2
B,1,AI_Pace=1 PSR=2 cPWR=2 RTG=2
&lt;/PRE&gt;
&lt;P&gt;Then just add the DSD option to the FILE statament.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1,PSR=3
A,2,AI_Pace=1,BOARD=2
B,1,AI_Pace=1,PSR=2,cPWR=2,RTG=2
&lt;/PRE&gt;
&lt;P&gt;Then don't add DSD option but instead write the commas before writing ID and the measures.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  put hosp ',' id @;
  do over measures;
    if not missing(measures) then put +(-1) ',' measures= @;
  end;
  put;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or worse like this?&lt;/P&gt;
&lt;PRE&gt;A,1,AI_Pace=1,PSR=3,,
A,2,AI_Pace=1,BOARD=2,,
B,1,AI_Pace=1,PSR=2,cPWR=2,RTG=2&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;For that you might want to keep track of how many non missing you found and then write the correct number of commas at the end.&lt;/P&gt;</description>
      <pubDate>Wed, 14 May 2025 18:27:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966508#M376147</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-05-14T18:27:49Z</dc:date>
    </item>
    <item>
      <title>Re: Converting a egular SAS data set into a transactional data set for market basket analysis</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966509#M376148</link>
      <description>&lt;P&gt;Yep, I forgot to put he letter "r" in front of some of the variables.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":unamused_face:"&gt;😒&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 14 May 2025 18:22:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-a-egular-SAS-data-set-into-a-transactional-data-set/m-p/966509#M376148</guid>
      <dc:creator>DocMartin</dc:creator>
      <dc:date>2025-05-14T18:22:54Z</dc:date>
    </item>
  </channel>
</rss>

