|Date: ||Wed, 27 Jun 2007 17:09:45 +0000|
|Sender: ||"SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>|
|From: ||Ian Whitlock <iw1junk@COMCAST.NET>|
|Subject: ||Re: Freq-ing with ODS|
Summary: Bug in long format names.
You would find more help faster if you make it easy for one to do.
proc format ;
0='0 NO DEATH'
1='1 CANCER DEATH'
2='2 CARDIO D'
3='3 DIABET D'
4='4 OTHER D'
data w ;
format mortal mortalf. typedeath typedeathf. ;
do obs = 1 to 100 ;
mortal = round(ranuni(569023)) ;
typedeath = round(4 * ranuni(0)) ;
TITLE "MORTALITY BY typedeath";
ODS OUTPUT CrossTabFreqs=cross (KEEP =MORTAL typedeath FREQUENCY) ;
PROC FREQ DATA=w order=INTERNAL;
ods output close ;
Armed with the above example, I changed the name TYPEDEATHF to meet
the old standard 8 byte limit and both formats were displayed. Apparently
ODS OUTPUT does not know how to handle long format names.
Date: Wed, 27 Jun 2007 14:36:22 -0000
Sender: "SAS(r) Discussion"
Subject: Freq-ing with ODS
Comments: To: sas-l
Content-Type: text/plain; charset="iso-8859-1"
What determines when an observation of a variable in a dataset created with
ODS is stored as the formatted value or the unformatted value?
In this example, I have a simple code that looks something like this:
PROC FREQ DATA=FOO.DEATHCOHORT order=INTERNAL; TITLE "MORTALITY BY &COVAR";
TITLE2 "WHERE MORTAL= &i. "; WHERE METREX92C=&i.; TABLES MORTAL*&COVAR; ODS
OUTPUT CrossTabFreqs=cross (KEEP =MORTAL &COVAR FREQUENCY _TYPE_ WHERE=
(_TYPE_='11') ); RUN;
A dataset named "cross" is created. In the first iteration of the loop,
"Mortal" is being cross tablulated with a variable called "typedeath".
Mortal is coded as a 0/1 variable, typdeath is 0/1/2/3/4, and their formats
are as follows:
VALUE MORTALF 0='0 ALIVE' 1='1 DEATH';
VALUE TYPEDEATHF 0='0 NO DEATH' 1='1 CANCER DEATH' 2='2 CARDIO D' 3='3
DIABET D' 4='4 OTHER D';
Unfortunatly, in my work dataset Cross is saved something like this
(abridged) Mortal Typedeath Frequency Alive 0 200 Dead 1 10 Dead 2 5
It is interesting to me that the attributes of Mortal and Typedeath are
such that the variables are still associated with their formats but are
both being displayed differently.
I would like the all of the variables to be saved in the "Cross" dataset as
their formatted values. The variable mortal, in this case, is the
I have several other variables that are formatted in the same fashion as
Typedeath, and some of these variable are being saved correctly (and some
I hope I am being clear, and that someone can offer some guidance. My