HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning:...

53
HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and international treaties. Unauthorized reproduction of this presentation, or any portion of it, may result in severe civil and criminal penalties and will be prosecuted to maximum extent possible under the law. HRP 223 - 2008 Topic 7 – How Reports Work

Transcript of HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning:...

Page 1: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved.Warning: This presentation is protected by copyright law and international treaties. Unauthorized reproduction of this presentation, or any portion of it, may result in severe civil and criminal penalties and will be prosecuted to maximum extent possible under the law.

HRP 223 - 2008

Topic 7 – How Reports Work

Page 2: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

When do I do what?

If you need to produce summaries of data down columns, use the Describe menu.

If you need to summarize data across the rows (change the values in cells), use the Filter and Query tool.

Page 3: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Data Steps

You can do anything in data step but don’t. Use the menu drive summaries. There are three cases where you will want to do dataset

processing because the menu options are too limited or missing and SQL is impossible or ridiculously hard for these tasks:– outputting to multiple data sets– doing the same task to a set of variables– tracking complex patterns across records (for example, you

may want to keep a complex total as you process records for a person) or remembering what was on a previous record

Page 4: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Retain

It is a horrible way to organize data but some people use blanks to indicate you are on the same subject.

This causes issues for SAS because SAS erases the PDV whenever it loads in new data. You need to tell it to remember values across records.

You can tell SAS to retain (remember) variables.

Page 5: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Retain

The PDV wants to work like this:

Page 6: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Retain

You want to give the retained variable the subject ID when you have one.

Page 7: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Retain

If the ID is not missing, you want to copy the retained ID into the blank.

You don’t need to copy lastDude into the new data set.

Page 8: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Retain Both

Page 9: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

After Slicing and Dicing

After you build tables with the correct data, you will want to print reports.– Simple Tables– Complex Summaries– Numeric Summaries– Graphics

The Graphical User Interface in EG is excellent for these tasks but you will want to make some tweaks which I will show you.

Page 10: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

A Simple Printed Report

Say you have a dataset with band names and album names and you want to print it in a report:

Use the List Data… menu option from the Describe menu:

Page 11: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Basic reports are easy.

Page 12: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Looking Better

Page 13: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Changing Code

As you tweak checkboxes or other options, EG is rewriting code:

Page 14: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

How it Works

The code that is generated for visualization tasks does these things:– Cleans up old files before it tries to reuse the

names– Sorts the data if needed (and drops extra variables

if you don’t tell it otherwise)– Does the visualization– Deletes old files

Page 15: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008The code will look something like this:

Page 16: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

If your code looks different…

I recommend setting this to never.

Page 17: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Titles

The titles look lousy. I want the title to say “Ray plays 5f_55 too loud” and “Ray plays Assemblage 23 too loud”, etc..

Use #byval(theVariable) to show the group as the title at the top of the page.

Page 18: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Almost….

Closer….

Page 19: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Page 20: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Niceties You can justify titles or footnotes to the left or

right or add hyperlinks. Right click on the node that has the report and

choose Open Last Submitted Code. Then type anything to have it make a copy for you to edit.

Add the code to left justify

Page 21: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Adding hyperlinks is easy also.

Page 22: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

File Names

It is convenient to add the name of the project to titles or footnotes.

There is an automatic macro variable called _clientprojectname which has the path to the project.

Page 23: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

%scan(&_clientprojectname, -1, \)

This is a macro function that says parse the path into words by dividing only at \ and select the first word starting on the right.

Page 24: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Macro Parameters in EG

You have seen a few examples of using macros and macro parameters in SAS code.– Macro is extremely useful to customize EG code.

You can add in lists for drop down menus that appear when your project runs.

– This is extremely useful for changing what happens when you run your projects.

More on this later.

Page 25: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Looking at Data

There is a dataset in the Walker book where he looks to see if two categorical predictors impact the mean hemoglobin scores. – Cancer type– Active vs. placebo

I want to visualize the data first and use the formal statistics to confirm what I have seen.

Page 26: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Summaries

I want good looking boxplots, histograms and numeric summaries.

The Box Plot menu choice is an embarrassment.

Page 27: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

By default you do NOT see outliers. Fix that.

Page 28: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

A lovely plot of white space…. With no mean symbols….

Page 29: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Page 30: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Histograms

The histograms you get from the Distribution Analysis tool are not too bad but I would not try to publish them.

Page 31: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Cancer Type

It looks like there are some subtle differences.

Page 32: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

SAS 9.2

SAS did major work to graphics in 9.2. I have not seen EG 4.2 yet but I am hopeful.

Page 33: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Pretty Summary Tables

Proc Tabulate is arguably the most user-hostile part of SAS. It is hidden nicely by the Summary Tables item under the Describe menu.

Page 34: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008Drag the classification variables into the table.

Drag and drop the analysis variable.

Page 35: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Drag and drop useful statistics.

Page 36: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Drag All to the margins.

Drag the analysis variable to the line below All.

Page 37: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Drag in the statistics of interest.

Page 38: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Set format and right click on areas to set properties like colors.

Page 39: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

This is what I got after a bunch of right clicking and tweaking the “Heading Properties” and one change to the Box Area.

Page 40: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

General Appearance

I don’t like the general color scheme and I want this to go to a PDF file.

Page 41: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Instant PDF

Visit the Style Manager on the Tools menu to browse the different style templates.

Page 42: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ODS The Output Delivery System is the subsystem of SAS that

controls output, including file types created and the appearance of the content. You can take any block of code and surround it with instructions to use ODS to send the output from an analysis to different output “pipes.”

There is no easy way to redirect output from several nodes in the flowchart into a single PDF.

Right click and choose “Open Last Submitted Code” and copy it (the blocks of code you want) to combine them into a single new code node.

Page 43: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Pipes

You open the ODS pipe by typing:ods html body="path";ods pdf body ="path"; You close it with the corresponding close statement:ods html close;ods pdf close;

Page 44: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

HTLM

My code to produce HTML looks like this:ods html file=‘blah-body.htm'contents="blah-contents.htm"frame="blah-frame.htm"page="blah-page.htm" path ="c:\projects\blah\" (url=none)gpath="c:\projects\blah\" (url=none);

Store the HTLM files and graphics here.

Do not specify the exact location of the files.

or body

Page 45: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ODS Exampleods html body="blah-body.htm"contents="blah-contents.htm"frame="blah-frame.htm"page="blah-page.htm" path ="c:\blah\" (url=none)gpath="c:\blah\" (url=none);

proc print data=blah;run;proc print data=blah2;run;ods html close;

Call it index.html if going to a webpage.

Page 46: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Page 47: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

HTML Style Templates You can add this to the ods html line to change the

appearance of the output:/style= SomeStyle

Where SomeStyle includes lots of already made choices like: BarrettsBlue, Beige, Brick, D3d,Default, FancyPrinter, Minimal, NoFontDefault, Printer, RTF, SansPrinter, SASWeb, SerifPrinter, StatDoc

I usually use default, minimal, journal or printer .

Page 48: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ODS for Word Processing

If you want good looking output to go into a word processor, tell ODS to output into RTF (rich text format):

ods rtf file = "c:\SomeName.rtf" bodytitle ;

At the end of the program include this:ods rtf close;

SAS wants to put titles into the document’s header. If you use “bodytitle” it will put the titles into the body of the text document.

Page 49: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ODS Example To get SAS to produce a subset of the output, you use

the ods select subsectionName statement. ods select BasicMeasures;proc univariate data = repver.f_repver3;

var age_st;run;

The trick is to figure out the name of the subsection you want. To find the subsection name, you can dig through the SAS documentation or just use the ODS trace statement.

Page 50: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ods trace on;proc univariate data=repver.f_repver3;var age_st;

run;ods trace off;

After you have the names of the subsections you want, remember to remove or comment out the ods trace statements.

Page 51: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

ODS Output to Tables

You can also send specific parts of output directly to a table like this:

ods output TestsForLocation = work.blah;proc univariate data = repver.f_repver3;var age_st;

run;

Page 52: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Exclude Specify the name of the table you want to exclude:ods pdf;ods exclude statistics;proc ttest data=graze;class GrazeType;var WtGain;

run;ods pdf close; The exclude will impact the next procedure only.

Page 53: HRP223 2008 Copyright © 1999-2008 Leland Stanford Junior University. All rights reserved. Warning: This presentation is protected by copyright law and.

HRP223 2008

Stopping Flow You can stop the output from a procedure from going

to a destination. I do this when I am creating a web summary of data and I have diagnostic procedures in the code.

ods html select none;proc datasets library = thom04;

modify rrcardnd (label = "thom04.rrcardnd: RRisk Phone Screening Form");

run;modify dphel (label = "People they think had full information");

quit;ods html select all;