470 likes | 574 Views
HRP 223 - 2008. Topic 4 – Making and Looking at Data. Toy Data. While it is of little use in real life, SAS lets you manually enter data. First make a library so the data will be permanently stored. Toy Data. Tell it to make the dataset:.
E N D
HRP 223 - 2008 Topic 4 – Making and Looking at Data
Toy Data While it is of little use in real life, SAS lets you manually enter data. First make a library so the data will be permanently stored.
Toy Data Tell it to make the dataset:
If you type a number as the first value of a character variable, EG converts the column to numeric. Right click on the column headings to change them back if this inadvertently happens.
Professional programmers equate 0 with “no” and 1 means “yes” but create a format to make reports pretty.
Open the data, then set it to be not read only by unchecking the option.
When you come back… This little program shows the details on formats in a library. If you return to the project it will have forgotten about the formats you applied. Add a one line program to tell it what libraries (folders) have formats stored in them.
These 4 records really represent 300 people. So if you were to do a frequency count on the cancer name variable, you would get the wrong count. Notice that it uses the labels.
If you find the label “The FREQ Procedure” annoying, turn it off in the options Tasks > Tasks General pane. This is the same as the code: ods noproctitle; You can also set or remove default titles and footnotes here.
Setting the Order There are options to set the order that the results print. If the options don’t work, make a format.
Ordering the Information I added a leading blank before the Y When data is sorted in format order, the first “letter” of the alphabet is blank. So put a leading space in the format for the things you want listed first.
One format is numeric. The other format is character.
Two Categorical Variables … no idea why Frequency count shows first on the task roles. You can do similar voodoo with two categorical variables:
Specify What is a Row vs. a Column First Drag your outcome variable over first. Drag the exposure variable over second.
This will replace values in a character variable so this a character format. Notice the leading space before the Y. You could go back and manually change the format by clicking on the column heading in the data set but I recommend just applying it in the analysis.
Be aware that all the common statistics are here so you do not need to learn the code. Use the Preview code button to see if you have the right options set.
Summarizing Numeric Data • Begin with a graphic. • Remember that you want to show both central tendency and variability. • You have already briefly seen the Summary Statistics and Distribution Analysis menu options (aka proc means and proc univariate). • I want you to know how to summarize large and small datasets.
Numeric Data • Say somebody tells you to simulate rolling dice. The formula to do this says: • generate a random number between 0 and 1 • multiply it by 6 • round up to the closest integer data die; *the 22 says which list of numbers between 0 & 1; aNumber = ranuni(22); die = ceil(6*aNumber); * Generate a random integer between 1 and 6.; dieDie = ceil(6*ranuni(78687632)); output; * write to the new dataset; return; * go to the top and try to read in data; run;
Doing Stuff Repeatedly How to roll two dice: data dice; do x = 1to2 by 1; roll= ceil(6*ranuni(78687632)); output; end; return; * go to the top and try to read in data; run;
Craps… In the dice game “craps” you throw two dice and the number you roll determines if you win or lose. How do you simulate rolling 10 pairs of dice? data craps ; do trial = 1to10; dodieNumber = 1to2; roll = ceil(6*ranuni(78687632)); output; end; end; return; run;
The Total Calculate the sum across the rolls using Summary Statistics on the Describe menu.
Crank up the number of simulations. Turn off the histograms for each trial. Generate a histogram based on the 1000 trials. I want to fix the way the histogram is binned. When the code is open, push any key and it will make a copy of the code which you can edit.
Do Loops Loops are used whenever you need to repeatedly do something. Say you wanted to read in 24 lines of data, where the first 6 records are from 1 treatment, the next 6 are from a 2nd, etc.
More Condensed The group could be a counter that goes from 1 to 4.
How to Summarize You can get a boxplot or a histogram with only 6 values but they will not be very informative.
Only a Few • If you only have a few data points, you should consider a mean and dot plot. SAS doesn’t have one built in so I made a macro to do it. • Macros are self contained blocks of code that do complex things. • A good Macro is like a function. You pass it a few arguments and it returns an answer. You don’t need to look at how its guts work.
The plotit Macro You paste in the macro beginning with the macro line and ending in the mend line. Then you invoke the macro using the name following the %macro statement:
Macro Stuff Macros can do simple formulas like calculating an age. Or really ugly stuff like validating dates.
Function Help The books for the class have lists of frequently used functions but you probably want to bookmark the function help in EG as well as using onlineDoc.
Add it to the favorite page. Highlight a word in the right windowpane and then type control-f to find words.
Dummy records in the HW • Recall there was a dummy record at the beginning of the Homework datasets. Why? • Columns of data in Excel are allowed to take arbitrary widths. So if you have a “last-name” column it will import into a database as having the width of the longest name. • If you import a second dataset and it has a different length and you try to append them together a database will choke. • You can use a dummy record to make sure the columns have the same length.