LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (February 2009, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Wed, 25 Feb 2009 15:36:23 +0000
Reply-To:     John Whittington <John.W@MEDISCIENCE.CO.UK>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         John Whittington <John.W@MEDISCIENCE.CO.UK>
Subject:      Re: TABULATE cross-tabulation with missing data
Comments: To: Robin R High <rhigh@unmc.edu>
In-Reply-To:  <OFDB8908FD.217AF7AF-ON86257568.0052CBCF-86257568.00530C75@
              unmc.edu>
Content-Type: text/html; charset="iso-8859-1"

<html> At 09:07 25/02/2009 -0600, Robin R High wrote:<br> <blockquote type=cite class=cite cite><font size=2>John,</font>&nbsp; <font size=2>Outside of processing the data into a different structure, I can't think of a way to avoid the missing column for day2 with the day1 - day3 variables, but the following simple transformation essentially gives the tabulation you requested:</font> </blockquote><br> Thanks.&nbsp; Yes, that does do the trick.&nbsp; In fact, with a couple of extra tweaks, one can get the output to looks exactly as it would have done if TABULATE were prepared to play ball with me directly.&nbsp; Using your transformed dataset jj ....<br><br> <font face="Courier New, Courier" color="#000080"><b>proc</b></font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#000080"><b>format</b></font><font face="Courier New, Courier"> ;<br> &nbsp;&nbsp; </font><font face="Courier New, Courier" color="#0000FF">value</font><font face="Courier New, Courier"> Pfmt </font><font face="Courier New, Courier" color="#008080"><b>1</b></font><font face="Courier New, Courier"> = </font><font face="Courier New, Courier" color="#800080">'Day 1'</font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#008080"><b>2</b></font><font face="Courier New, Courier"> = </font><font face="Courier New, Courier" color="#800080">'Day 2'</font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#008080"><b>3</b></font><font face="Courier New, Courier"> = </font><font face="Courier New, Courier" color="#800080">'Day 3'</font><font face="Courier New, Courier"> ;<br> </font><font face="Courier New, Courier" color="#000080"><b>run</b></font><font face="Courier New, Courier"> ;<br><br> </font><font face="Courier New, Courier" color="#000080"><b>proc</b></font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#000080"><b>tabulate</b></font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#0000FF">data</font><font face="Courier New, Courier"> = jj;<br> </font><font face="Courier New, Courier" color="#0000FF">class</font><font face="Courier New, Courier"> day0 dayP Y ;<br> </font><font face="Courier New, Courier" color="#0000FF">tables</font><font face="Courier New, Courier"> Day0=</font><font face="Courier New, Courier" color="#800080">''</font><font face="Courier New, Courier"> , dayP=</font><font face="Courier New, Courier" color="#800080">''</font><font face="Courier New, Courier">*y=</font><font face="Courier New, Courier" color="#800080">' '</font><font face="Courier New, Courier">*N*f=</font><font face="Courier New, Courier" color="#008080"><b>6.0</b></font><font face="Courier New, Courier"> / </font><font face="Courier New, Courier" color="#0000FF">box</font><font face="Courier New, Courier"> = </font><font face="Courier New, Courier" color="#800080">'Day 0'</font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#0000FF">misstext</font><font face="Courier New, Courier">=</font><font face="Courier New, Courier" color="#800080">'.'</font><font face="Courier New, Courier"> </font><font face="Courier New, Courier" color="#0000FF">printmiss</font><font face="Courier New, Courier"> ;<br> </font><font face="Courier New, Courier" color="#0000FF">format</font><font face="Courier New, Courier"> dayP </font><font face="Courier New, Courier" color="#008080">Pfmt.</font><font face="Courier New, Courier"> ;<br> </font><font face="Courier New, Courier" color="#000080"><b>run</b></font><font face="Courier New, Courier"> ;</font><font face="Arial, Helvetica" size=4>;<br><br> </font>Maybe my memory isn't as bad as I thought, but I still do think that, in the past, I have found a way to achieve this with TABULATE without having to undertake any pre-processing or post-processing - but maybe it's just that bit ('false recall'!) of my memory that is at fault!<br><br> Thanks again.<br><br> Kind Regards,<br> John<br><br> <blockquote type=cite class=cite cite><font face="Courier New, Courier" size=2 color="#000080"><b>data</b></font><font face="Courier New, Courier" size=2> jj ; </font><font face="Courier New, Courier" size=2 color="#0000FF">drop</font><font face="Courier New, Courier" size=2> day1-day3;</font> <br> <font face="Courier New, Courier" size=2 color="#0000FF">input</font><font face="Courier New, Courier" size=2> day0 day1 day2 day3 ;</font> <br> <font face="Courier New, Courier" size=2>dayP = </font><font face="Courier New, Courier" size=2 color="#008080"><b>1</b></font><font face="Courier New, Courier" size=2>; Y=day1; </font><font face="Courier New, Courier" size=2 color="#0000FF">IF</font><font face="Courier New, Courier" size=2> Y &gt; </font><font face="Courier New, Courier" size=2 color="#008080"><b>.</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">THEN</font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">OUTPUT</font><font face="Courier New, Courier" size=2>;</font> <br> <font face="Courier New, Courier" size=2>dayP = </font><font face="Courier New, Courier" size=2 color="#008080"><b>2</b></font><font face="Courier New, Courier" size=2>; Y=day2; </font><font face="Courier New, Courier" size=2 color="#0000FF">IF</font><font face="Courier New, Courier" size=2> Y &gt; </font><font face="Courier New, Courier" size=2 color="#008080"><b>.</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">THEN</font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">OUTPUT</font><font face="Courier New, Courier" size=2>;</font> <br> <font face="Courier New, Courier" size=2>dayP = </font><font face="Courier New, Courier" size=2 color="#008080"><b>3</b></font><font face="Courier New, Courier" size=2>; Y=day3; </font><font face="Courier New, Courier" size=2 color="#0000FF">IF</font><font face="Courier New, Courier" size=2> y &gt; </font><font face="Courier New, Courier" size=2 color="#008080"><b>.</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">THEN</font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">OUTPUT</font><font face="Courier New, Courier" size=2>;</font> <br> <font face="Courier New, Courier" size=2>&nbsp;&nbsp; </font><font face="Courier New, Courier" size=2 color="#0000FF">cards</font><font face="Courier New, Courier" size=2> ;</font> <br> <font face="Courier New, Courier" size=2>1 1 1 1</font> <br> <font face="Courier New, Courier" size=2>1 1 . 1</font> <br> <font face="Courier New, Courier" size=2>1 1 1 1</font> <br> <font face="Courier New, Courier" size=2>1 1 . 1</font> <br> <font face="Courier New, Courier" size=2>1 1 1 1</font> <br> <font face="Courier New, Courier" size=2>2 2 2 2</font> <br> <font face="Courier New, Courier" size=2>;</font> <br> <font face="Courier New, Courier" size=2 color="#000080"><b>PROC</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#000080"><b>PRINT</b></font><font face="Courier New, Courier" size=2>; </font><font face="Courier New, Courier" size=2 color="#000080"><b>run</b></font><font face="Courier New, Courier" size=2> ;</font> <br><br> <font face="Courier New, Courier" size=2 color="#000080"><b>proc</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#000080"><b>tabulate</b></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">data</font><font face="Courier New, Courier" size=2> = jj;</font> <br> <font face="Courier New, Courier" size=2 color="#0000FF">class</font><font face="Courier New, Courier" size=2> day0 dayP Y ;</font> <br> <font face="Courier New, Courier" size=2 color="#0000FF">tables</font><font face="Courier New, Courier" size=2> Day0=</font><font face="Courier New, Courier" size=2 color="#800080"><i>''</i></font><font face="Courier New, Courier" size=2> , dayP*y=</font><font face="Courier New, Courier" size=2 color="#800080"><i>' '</i></font><font face="Courier New, Courier" size=2>*N*f=</font><font face="Courier New, Courier" size=2 color="#008080"><b>6.0</b></font><font face="Courier New, Courier" size=2> / </font><font face="Courier New, Courier" size=2 color="#0000FF">box</font><font face="Courier New, Courier" size=2> = </font><font face="Courier New, Courier" size=2 color="#800080"><i>'Day 0'</i></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">misstext</font><font face="Courier New, Courier" size=2>=</font><font face="Courier New, Courier" size=2 color="#800080"><i>'.'</i></font><font face="Courier New, Courier" size=2> </font><font face="Courier New, Courier" size=2 color="#0000FF">printmiss</font><font face="Courier New, Courier" size=2> ;</font> <br> <font face="Courier New, Courier" size=2 color="#000080"><b>run</b></font><font face="Courier New, Courier" size=2> ;</font> </blockquote><br> <br> <div>John</div> <br> <div>----------------------------------------------------------------</div> <div>Dr John Whittington,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Voice:&nbsp;&nbsp;&nbsp; +44 (0) 1296 730225</div> <div>Mediscience Services&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +44 (0) 1296 738893</div> <div>Twyford Manor, Twyford,&nbsp;&nbsp;&nbsp; E-mail:&nbsp;&nbsp; John.W@mediscience.co.uk</div> <div>Buckingham&nbsp; MK18 4EL, UK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div> ---------------------------------------------------------------- </html>


Back to: Top of message | Previous page | Main SAS-L page