Help using Base SAS procedures

Two small question - Numeric to Char and Report Output

Reply
Contributor
Posts: 29

Two small question - Numeric to Char and Report Output

Hi Guru's

my first question:

I have a numeric field formatted as dollar. But i want to have 'N/A' for where we have 0 value. How do i achieve this?

1) will i be able to keep dollar sign and format but still be able to put 'N/A' for 0's? good to have.

if var_a = 0 then var_a = 'N/A';  This is not working.

my second question:

When i use Proc report it gives me a good formatted/tabulated report, if i export to html the layout is all messed up.

basically i want to use the proc report output to export to any format  (basically read-only) example pdf. How do i change the report layout to landscape (have 60 variables) and define field length etc.?

Thank you for sharing your experience/knowledge.

Raj


Super User
Super User
Posts: 6,500

Re: Two small question - Numeric to Char and Report Output

You could define a new format to force the zeros to N/A.

proc format ;

value nadollar (default=12)  0='N/A' other=[dollar12.] ;

run;

data _null_;

  do i=0,500,1500,150000 ;

    put i= nadollar8. ;

  end;

run;

i=N/A

i=$500

i=$1,500

i=$150,000

Contributor
Posts: 29

Re: Two small question - Numeric to Char and Report Output

Tom,

Thanks for the quick response.

I tried the above suggestion and may be i am doing something wrong.

Below is what i want to achieve.

data test1;

format xa $4.;

format ya dollar10.2;

format za dollar10.2;

input xa ya za;

cards;

     3.1 1234 26459

     3.1 3126 0

     4.1 1235 0

     4.1 0      6286

;

run;

data test2;

     set test1;

     if xa = '4.1' then ya = 'N/A';

     if xa = '3.1' then za = 'N/A';

run;

Thanks again

Super User
Super User
Posts: 6,500

Re: Two small question - Numeric to Char and Report Output

I am not sure what you are trying to do with the second data step.  Looks like if the value of XA is 4.1 then variable YA is not applicable?  If so then does that mean that the value 0 for variable ZA in the third row is a real value of zero? 

Have you considered using SAS missing values instead of coding the missing values as zeros?  This will work much better if you want take the mean of values.  The missing value will not count into the denominator.  So the mean of (0,10) is 5 with a count of 2 but the mean of (.,10) is 10 with a count of 1.  To do that make these changes to your sample program.

proc format ;

   value nadollar .='       N/A' other=[dollar10.2] ;

run;

data test1;

  length xa $4;

  format ya za nadollar10.2;

  input xa ya za;

  if xa='3.1' then za=.; 

  if xa='4.1' then ya=.;

cards;

3.1 1234 26459

3.1 3126 0

4.1 1235 0

4.1 0    6286

;

run;

proc print;

run;

Obs    xa     ya            za

1     3.1     $1,234.00           N/A

2     3.1     $3,126.00           N/A

3     4.1           N/A         $0.00

4     4.1           N/A     $6,286.00

PROC Star
Posts: 1,093

Re: Two small question - Numeric to Char and Report Output

Check out SAS missing values. They represent a concept of "this isn't a number".

Change Tom's format to:

proc format ;

value nadollar (default=12)  .='N/A' other=[dollar12.] ;

run;

And your code becomes:

if xa = '4.1' then ya = .;

if xa = '3.1' then za = .;

Super User
Posts: 10,500

Re: Two small question - Numeric to Char and Report Output

Your output controls are basically going to be using ODS.

ODS HTML path="C:\your folders here" (url=none) body="your file name.html";

(and other html options are available)
<Your proc report code goes here>

ods html close;

Similar for PDF or RTF file formats using ODS PDF or ODS RTF or ODS TAGSETS.RTF ;

Do you have "Create HTML" turned on? That would allow the easiest way to get HTML output.

Contributor
Posts: 29

Re: Two small question - Numeric to Char and Report Output

Hello Ballardw;

Thanks for the response.

I got the PDF and/or HTML output, but can i format the output to say landscape, fit to page1 and column width?

Where and how do i define the layout.

Thanks again

Raj

Super Contributor
Posts: 1,636

Re: Two small question - Numeric to Char and Report Output

try adding:

options orientation=landscape;

Valued Guide
Posts: 632

Re: Two small question - Numeric to Char and Report Output

Unlike PDF, HTML does not think of pages in terms of paper.  Most of the formatting of the layout for HTML is done at the browser end, so there is less that you can control on the report generation side.

Contributor
Posts: 29

Re: Two small question - Numeric to Char and Report Output

My question is answered.

Unfortunately I am not able to flag as "Correct Answer". Not sure why.

I will try  back later for flag.

Thanks again.

Ask a Question
Discussion stats
  • 9 replies
  • 298 views
  • 1 like
  • 6 in conversation