Monday, December 30, 2019

The Life of American Women in Zora Neale Hurston’s Their...

Zora Neale Hurston’s Their Eyes Were Watching God is a novel illustrating the life of an African American woman that finds her voice through many trials and tribulations. At the heart of the story, Hurston portrays a protagonist who moves from a passive state to independence, from passive woman with no voice who is dominated by her husband to a woman who can think and act for herself. Hurston achieves the greater theme of Their Eyes Were Watching God, of self-expression and independence through her use of three basic southern literary elements: narrative structure,  ¬Ã‚ ¬Ã‚ ¬Ã‚ ¬Ã‚ ¬allegory, and symbolism. A brief inspection of these three basic elements will reveal how Their Eyes Were Watching God achieves its inspiring effect. Zora Neale Hurston†¦show more content†¦She learns to control her voice after she finds it. Similarly, the narrator is silent in exposed places, neither revealing why Janie isn’t upset with Tea Cake’s beating nor disclosing her words at the trial. Although Janie returns to Eatonville alone, she returns as a strong, new woman. Hurston’s narrative advocates both freedom from sexist and racist harassment, and the rejection of community and cultural values that enforce such harassment. Hurston also presents an imaginative consciousness that speaks of wandering and independence in a time when women were somewhat restricted. In the end, Janie, like Hurston and many African American women of the twentieth century, becomes a woman who can think and act for herself. Zora Neale Hurston also uses allegory to convey the theme of the novel. He uses it when Janie’s second husband, Joe Starks, forces Janie to wear a head-rag when in public. Because Janieâ €™s hair is so attractive to men, Joe’s jealousy makes his wife bind her hair, constraining Janie’s femininity and stifling her identity. In an attempt to keep Janie all to himself, he suffocates her and loses her completely. When Joe dies, Janie wastes little time in burning all of the head-rags she owns. Here, the head-rag represents the constraints imposed on women by men in power, and how Joe obstructed Janie from finding her voice. When Janie gets attacked by theShow MoreRelatedThe Harlem Renaissance By Zora Neale Hurston925 Words   |  4 Pagesmovement in the 1920s that led to the evolution of African-American culture, expression through art, music, and literary works, and the establishment of African roots in America. Zora Neale Hurston contributed to the Harlem Renaissance with her original and enticing stories. However, Hurston’s works are notorious (specifically How it Feels to Be Colored Me and Their Eyes Were Watching God) because they il lustrate the author’s view of black women and demonstrate the differences between their views andRead MoreTheir Eyes Were Watching God1571 Words   |  7 PagesZora Neale Hurston and her novel Their Eyes Were Watching God During the Harlem Renaissance, African Americans experience a cultural exposure in literature art. It was a period of great achievement in African-American art and literature during the 1920s and 1930s. This surge gave birth to several authors, playwrights and dramatists, such as Zora Neale Hurston. Zora Neale Hurston is now considered among the foremost authors of that period, having published four novels, three nonfiction works, andRead MoreZora Neale Hurston A Genius of the South Essay1664 Words   |  7 PagesZora Neale Hurston is a trailblazer. Back then people ridiculed her, but she felt the pride and dignity within herself. She was seen as an African-American grandmother in many images of black women writers (Showalter 221). Her talent for African-American literature excited the new readers who were constantly reading her literary works (â€Å"Hurston,† Feminist). Occasionally, both black and white supporters reviewed her books (McKay). She demonstrates a larger patter n of white American culture to be substantiallyRead MoreThe Harlem Renaissance : The New Negro Movement1459 Words   |  6 Pagesfrom the 1920’s to the 1940’s, a well-known period of time where black people’s ideas, morals, and customs were adapted and developed was known as the Harlem Renaissance. The main focus of the era for the African Americans was to establish some sort of identity and self-expression through literary, musical, theatrical, and visual arts. The story behind this began in 1890 when African American slaves migrated from the rural South to the urban North as they thrashed their way to freedom. Most of themRead More Essay on the Voice of Janie in Their Eyes Were Watching God1797 Words   |  8 Pagesin Their Eyes Were Watching God The world of Janie Crawford in Their Eyes Were Watching God was one of oppression and disappointment. She left the world of her suffocating grandmother to live with a man whom she did not love, and in fact did not even know. She then left him to marry another man who offered her wealth in terms of material possessions but left her in utter spiritual poverty. After her second husbands death, she claims responsibility and control of her own life, and throughRead More Symbolism in Their Eyes Were Watching God Essay example1117 Words   |  5 PagesIn Zora Neale Hurston’s novel, Their Eyes Were Watching God, she utilizes an array of symbolism such as color, the store, and her husbands to solidify the overall theme of independence and individuality. Their Eyes Were Watching God is considered by many a classic American Feminist piece that emphasizes how life was for African Americans post slave era in the early 1900s. One source summarizes the story as, 1 †a womans quest for fulfillment and liberation in a society where women are objects toRead More Zora Neale Hurston - Celebrating the Culture of Black Americans2152 Words   |  9 PagesZora Neale Hurston - Celebrating the Culture of Black Americans In her life and in her writings, Zora Neale Hurston, with the South and its traditions as her backdrop, celebrated the culture of black Americans, Negro love and pride with a feminine perspective that was uncommon and untapped in her time. While Hurston can be considered one of the greats of African-American literature, it’s only recently that interest in her has been revived after decades of neglect (Peacock 335). Sadly, Hurston’sRead MoreOverview: Their Eyes Were Watching God by Zora Neale Hurston1641 Words   |  7 PagesTheir Eyes Were Watching God was written by Zora Neale Hurston and published in 1937. Hurstons book guides us through character Janie Crawford’s hectic journey while taking place in the 1900s. The story starts out with Janie, a middle-aged African American woman, returning to her hometown in Eatonville, Florida. Her surprise visit gets the town talking. They wonder where she had gone, what she was doing, and why she was gone so long. Janieâ⠂¬â„¢s friend, Pheoby Watson, visits Janie to find out what happenedRead More Zora Neale Hurston Essay1149 Words   |  5 Pagesnbsp;nbsp;nbsp;nbsp;nbsp;Zora Neale Hurston was a phenomenal woman. At the height of her success she was known as the â€Å"Queen of the Harlem Renaissance.† She came to overcome obstacles that were placed in front of her. Hurston rose from poverty to fame and lost it all at the time of her death. Zora had an unusual life; she was a child that was forced to grow up to fast. But despite Zora Neale Hurston’s unsettled life, she managed to surmount every obstacle to become one of the most profound authorsRead More Contrasting Native Son and Their Eyes Were Watching God Essay4128 Words   |  17 Pages  Ã‚  Ã‚  Ã‚     Ã‚  Ã‚  Ã‚   This paper examines the drastic differences in literary themes and styles of Richard Wright and Zora Neale Hurston, two African--American writers from the early 1900s. The portrayals of African-American women by ea ch author are contrasted based on specific examples from their two most prominent novels, Native Son by Wright, and Their Eyes Were Watching God by Hurston. With the intent to explain this divergence, the autobiographies of both authors (Black Boy and Dust Tracks on a Road) are

Sunday, December 22, 2019

Theme Of Women In Medea - 1850 Words

In most Greek tragedy, it is clear that females are not vital in society. Women are rather a necessity for the birth of new citizens and seen as just the vessels for carrying children. Greek cultural values depict women as subservient to men given no chance or opportunities to participate in society. The female is not considered to be part of Greek democracy because she is perceived to be dishonest and frankly her entire life is then masked by the masculinities that this society tends to favor. Thus, it is important to note the frustrations this belittling of expression brings upon females in these tragedies. In Euripides’s Medea, we can observe the fascination of women and the effects being subordinate to their male counterparts has in†¦show more content†¦In the speech to the chorus Medea recites, â€Å"The Suffering I have endured, endured, calling for bitter lament aloud!† (111-112). This line is significant because right from the beginning of the play Mede a acknowledges what befalls her as a woman. She speaks out against the status of women in society and emphasizes the lack of control they have over their marriages. Her â€Å"bitter lament† is a cry for relief on behalf of all Greek women. It is additionally important to notice why the chorus is specified in the play as the â€Å"Chorus of Corinthian women†. This highlights Medea’s status as a foreigner and underlines her isolation in Corinth. Thus, even as a foreigner to the city of Corinth, Medea empathizes with the ordinary woman and the chorus which when recalled consist of only women. Furthermore, Medea touches upon more flaws of her society when she states, â€Å"We women are the most beset by trials of any species that has breath and power of thought.† (230-231). Here the word â€Å"beset† is used to compare females to other species. The word carries a noticeably negative connotation and further supports the argument that perhaps the female to death dichotomy is not natural, but rather an inability for men to appreciate women for their passions to love. Loyalty and patience are virtues Medea seems to cherish most. She notes again that as womenShow MoreRelated Love and Deception in Medea, by Euripides Essay507 Words   |  3 PagesLove and Deception in Medea, by Euripides There are many pieces of literature that may entail more than one theme throughout the story. The tragedy, Medea, by Euripides is very good example of this. Throughout this story, the themes of betrayal and love, revenge, and women’s rights arise. Euripides brings these points up to help the reader to realize that women are powerful.   Ã‚  Ã‚  Ã‚  Ã‚  Betrayal is a very important theme throughout this story. Her husband Jason betrays Medea, when he abandons herRead MoreWomen and Femininity in Medea1032 Words   |  5 PagesWomen and Femininity in Medea Women’s rights movements have made incredible progress in recent times. Although there are many countries around the world where women are facing political and social unjustness, the social class of women in ancient Greece of 5th century BCE was solely grounded by patriarchal ideologies. The Greek playwright Euripides creates a persistent character Medea, in his classic tragedy Medea. Today, scholars study this relentless protagonist who has become an eternal andRead MoreA Dream Of Passion By Euripides Medea And Apollonius s Argonautika1287 Words   |  6 PagesThe character Medea is a well known character throughout Greek culture due to Euripides’s Medea and Apollonius’s Argonautika. Jules Dassin’s A Dream of Passion presents the story of Medea in a modern way, allowing myth and reality to intertwine. Because the film is based on the myth, the two main characters in the film, Maya and Brenda, share many qualities to Medea, such as killing of their chil dren. Common themes, such as the position of women in society, are also presented in both mediums. TheseRead MoreAnalysis Of Medea845 Words   |  4 PagesThe first person point of view can be found in the beginning of the work, for example, when Medea says â€Å"I hate this life†¦Ã¢â‚¬  (Puchner, pg. 532, line 150). By Euripides using the second person point of view, it allows the readers to connect to the characters on a more personal basis for example, Medea says â€Å"†¦ you’ve made threats†¦Ã¢â‚¬  (Puchner, pg. 536, line 294). An example of the third person point of view is Medea telling Jason that â€Å"he’s such an idiot† (Puchner, pg. 537, line 379). By there being multipleRead MoreEvaluation of Euripides Essay942 Words   |  4 Pages Euripides has met the conventions of Attic Tragedy up to a particular extent. Although he was often criticised for his work, he followed the structure and cycles of the traditional tragedy. However, his stance on the themes and ideas set him apart from the other writers. It is unreasonable to compare Euripides with the traditional writers of Attic tragedy without understanding his attitude and the reason for this attitude. Although he was only fifteen yearsRead MoreBinary Oppositions Vs. Evil1190 Words   |  5 Pages Have you ever tried to examine a piece of writing? Did you see a connection between characters, plots, themes? One thing you might not have noticed is binary oppositions. Now all readers will see some universal oppositions such as good vs. evil, but as Corey Martin said in his paper there are many oppositions in literature, some are noticeable, some are not. Now why would a reader want to look for binary oppositions in literature? Quite simply binary oppositions add some familiarity to the workRead More Binary Oppisition Essay1035 Words   |  5 PagesBinary Opposition In Greek tragedy there are many themes that are contrasted with each other. This is known as binary opposition, which s defined as a contrast of themes that are the opposite poles of each other. There are many conflicts in Euripides’ Medea and Bacchae: perhaps the three most conspicuous oppositions are rational versus irrational, foreigner versus natives, and stereotypical dichotomy of female and male. The first binary opposite in Euripides plays are rational versus irrationalRead MoreWhat Is the Role of the Chorus in Medea? Essay680 Words   |  3 PagesIn Medea an essential character is the chorus of Corinthian women. They help obtain Euripides truly genius paradox of achieving empathy from the readers for a mother who sheds her own childrens blood. One of the major turning points in the play is when Medea asks for the chorus of womens silence as she contrives an evil plot to gain revenge. They agree immediately and are henceforth wrapped up in the play and the malicious plot. This I promise. You are right, Medea, / In paying your husbandRead MoreMedea Plot Analysis1392 Words   |  6 PagesMedea is an ancient Greek tragedy play written by Euripides. The play bases itself on the ancient myth of Jason and Medea. The plays plot centers itself on the actions of Medea who was the Barbarians former prince who seeks revenge against Jason who betrayed her with another woman. Co nsidered as one the best work produced by Euripides, the play has earned the writer several awards including the Dionysian festival awards in 431BCE (Williamson 1) Therefore, the purpose of this paper is to discussRead MoreThe Tragedy Of Euripides Medea And Ovid s Metamorphoses, Medea, And Juno898 Words   |  4 Pageshave caused. In Euripides’ Medea and Ovid’s’ Metamorphoses, Medea and Juno exhibit vengeance to defend their dignity. Primary Source In Euripides’ Medea, Medea is very furious because Juno left her and her children to remarry the princess. Medea does not accept the betrayal and demands punishment for leaving her after all she has done for him. Creon is aware â€Å"I’m afraid of you. You could hurt my daughter, even kill her. Every indication points that way†(793). Medea knew she was going to exile and

Saturday, December 14, 2019

Proc Report Secreates Free Essays

string(101) " data set variable that is listed in the COLUMN statement will be associated with the SUM statistic\." PharmaSUG 2012 – Paper TF20-SAS PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software Allison McMahill Booth, SAS Institute Inc. , Cary, NC, USA ABSTRACT Have you ever wondered why a numeric variable is referenced in different forms within a COMPUTE block? Do you know the difference between a DATA step variable and a variable that is listed in the COLUMN statement? Then, this paper is for you! Welcome to PROC REPORT Unwrapped. We are looking at PROC REPORT and uncovering some of the behind-the-scenes details about this classic procedure. We will write a custom essay sample on Proc Report Secreates or any similar topic only for you Order Now We will explore the components associated with PROC REPORT and discover ways to move column headings and change default attributes with styles and CALL DEFINE statements. We will also dig deep into example code and explore the new ability to use multilabel formatting for creating subgroup combinations. So for anyone who has ever written PROC REPORT code, stay tuned. It’s PROC REPORT Unwrapped! INTRODUCTION Which popular SAS procedure has features of the PRINT, MEANS, and TABULATE procedures and features of the DATA step in a single report-writing tool? It enables you to create a variety of reports including a detail report, which contains a row of data for every input data set observation, or a summary report, which consolidates data so that each row represents multiple input data set observations. Here is another hint: this same procedure provides the ability to create both default and customized summaries, add text and statistics, and create columns of data that do not exist in the input data set. If you guessed PROC REPORT, you are correct! For anyone who has written PROC REPORT code and has wondered what is going on behind the scenes, this is the paper for you. This paper explores some of the behind-the-scenes secrets of PROC REPORT. We will dig deep into example code as we begin to uncover some of the details of this classic report-writing procedure. As a bonus, you will discover some facts about the REPORT procedure that you might not have known. By the way, the code output in this paper is based on the SAS ® 9. 3 default output destination of HTML. Although most of the paper ontent can also be applied to the LISTING destination, the code that is shown in this paper is intended to be used in an Output Delivery System (ODS) destination, unless otherwise indicated. With that being said†¦are you ready to explore? Welcome to PROC REPORT Unwrapped! EXPLORING THE SECRETS (HOW IT’S MADE) PROC REPORT first began life as a procedure many years ago in SAS ® 6. Since then, it has been gaining popularity as the t ool of choice for report writing. Even with such popularity, there are still aspects of the REPORT procedure that can be further explored. In this segment, we will unwrap and explore some of the secrets behind this most popular procedure with a focus on the following components: ? referencing a numeric variable in a COMPUTE block ? exploring the difference between an input data set variable and a DATA step variable ? discovering ways to move column headings ? changing default attributes with styles ? using the CALL DEFINE statement ? exploring the new ability in SAS 9. 3 to use multilabel formatting for creating subgroup combinations Let’s start exploring the secrets! REFERENCING A NUMERIC VARIABLE IN A COMPUTE BLOCK All numeric variables are referenced the same way, right? Well, that depends on how the numeric variable is defined in the PROC REPORT DEFINE statement. Before we can explore more about the how a numeric variable is defined, we first need to understand some PROC REPORT basics. Then we will explore the many ways a numeric variable 1 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued can be defined in the DEFINE statement and how that definition determines the manner in which the variable is referenced in a COMPUTE block. In the PROC REPORT statement, the input data set is listed using the option DATA= . If the DATA= option is not specified, PROC REPORT will use the last data set that was created in the current SAS session. The input data set contains variables and observations. The variables are categorized as either character or numeric— that is it, character or numeric. PROC REPORT does not use all of the variables from the input data set. Only the input data set variables that are listed in the COLUMN statement or in the BY statement are used. All of the report items, including the variables from the input data set that are listed in the COLUMN statement can be used in a COMPUTE block. Each report item in the COLUMN statement has an associated DEFINE statement. If a DEFINE statement for the report item is not supplied, PROC REPORT will create a default DEFINE statement behind the scenes. If a COLUMN statement is not specified, PROC REPORT will create a COLUMN statement behind the scenes. The COLUMN statement will contain only the variables from the input data set in the order of the data set. DEFINE statements can be supplied without a supplied COLUMN statement. The minimum statements that are needed to run PROC REPORT are a PROC REPORT statement with an input data set and a RUN statement. Behind the scenes, PROC REPORT will create all the necessary minimum default statements. To see the default statements, add the LIST option in the PROC REPORT statement. The LIST option will produce the basic code, including all of the DEFINE statements, in the SAS log. The NOWD option enables the report to run in the non-windowing mode. Here is an example of PROC REPORT code with the LIST option: proc report data=sashelp. class nowd list; run; The SAS log is shown in Output 1. Output 1. SAS Log Output By default, the DEFINE statement for a numeric input data set variable that is listed in the COLUMN statement will be associated with the SUM statistic. You read "Proc Report Secreates" in category "Papers" An alias for the SUM statistic is ANALYSIS. The SUM statistic is the most common statistic that is used in PROC REPORT code. The SUM statistic can be replaced with any valid PROC REPORT statistic such as MIN or MEAN. At BREAK and RBREAK rows, the numeric input data set variable with an associated statistic will consolidate automatically based on the associated statistic. When a numeric input data set variable with an associated statistic is referenced in a COMPUTE block, the form of the variable-name. statistic is used. In a COMPUTE block, if a numeric input data set variable name is used without the corresponding statistic (which is the statistic listed in the DEFINE statement), a note might be written to the SAS log. The following code will produce a note in the SAS log: roc report nowd data=sashelp. class; col age height weight total; define age / group; define height–weight/ mean; define total / computed; compute total; total=height. mean/weight; endcomp; run; 2 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued In the preceding code, the DEFINE statement for the WEIGHT variable lists MEAN as the statistic. The cal culation in the COMPUTE TOTAL block for the TOTAL COMPUTED variable shows the WEIGHT variable without the statistic of MEAN. PROC REPORT requires this statistic and does not recognize the WEIGHT variable. A note, such as the following, is produced in the SAS log: NOTE: Variable weight is uninitialized. PROC REPORT allows duplication of report items in the COLUMN statement. This duplicated report item becomes an alias. When an alias of the numeric input data set variable is referenced in a COMPUTE block, the alias name is used without the associated statistic. Behind the scenes, any duplication of the same variable or statistic in the COLUMN statement will be associated with an alias name. If an alias name is not specified, PROC REPORT will create one. To see the assigned alias name, add the LIST option to the PROC REPORT statement and review the SAS log for the code. Using the preceding code in this section, the HEIGHT variable is duplicated in the COLUMN statement as follows: col age height height weight total; The resulting SAS log is shown in Output 2. Output 2. SAS Log Output Showing an Alias Name of _A1 Assigned behind the Scenes When the numeric input data set variable with an associated statistic is associated with an across variable, the column number, in the form of Cn_, is used in a COMPUTE block. In the form of _Cn_, n is the column number. The position of the columns shown in the output report is based on the left-to-right placement of the report-items in the COLUMN statement. For example, if a numeric variable with an associated statistic is placed as the first column under the ACROSS grouping but it is the second column in the output report, _C2_ is the correct value to use in a COMPUTE block. Behind the scenes, all columns are considered to have a column number even if the column is not printed in the final output report. Here is an example COLUMN statement: col sex age, (weight height); In this column statement, the first value of the WEIGHT variable is in the second column in the report. AGE is an across variable and is not counted as a column. The first column of the WEIGHT variable is associated with the first value of AGE and is referenced in a COMPUTE block as _C2_. The next column of the WEIGHT variable that is associated with the second value of AGE is referenced in a COMPUTE block as _C4_. Each unique value of the across variable becomes a header. Under each ACROSS header are the columns of variables that are associated with each unique across variable value. Each variable associated with an across variable becomes a column under the unique variable value. The number of unique values of an across variable controls the number of columns that are created for a variable associated with the across variable from the COLUMN statement. Behind the scenes, PROC REPORT has to know the specific column placement of a variable that is referenced in a COMPUTE block. The _Cn_ is used instead of the variable-name. statistic, the alias name, or the variable name. PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued The following example code shows this concept: proc report nowd data=sashelp. class list; col age sex, (weight height total); define age / group; define sex / across; define height–weight/ sum format=8. 2; define total / computed format=8. 2; compute total; _c4_=_c2_/_c3_; _c7_=_c5_/_c6_; endcomp; run; The COMPUTE TOTAL block shows two assignment statements. Each assignment corresponds to a column of WEIGHT, HEIGHT, and TOTAL for each unique value of the across variable SEX. The resulting output is shown in Output 3. Output 3. Output Using _Cn_ in the COMPUTE TOTAL Calculations A numeric input data set variable can also be defined as DISPLAY, GROUP, ORDER, or COMPUTED. Because there is no statistic associated with these definitions, the numeric input data set variable name is used in a COMPUTE block. Regardless of the definition, the numeric report-item can still be used in any computation. However, for GROUP or ORDER definitions, behind the scenes the values are evaluated from the printed output report instead of the input data. This means that if the ORDER or GROUP defined variable for a particular row and column shows as a blank on the printed output report, a blank is the value that will be used for any computation or evaluation. The following code shows three different methods for assigning the value of the ORDER variable AGE to a COMPUTED variable. proc report nowd data=sashelp. class; col age newage1 newage2 newage3; define age / order; define newage1 / computed; define newage2 / computed; define newage3 / computed; /* method 1 */ compute newage1; newage1=age*1. 5; endcomp; /* method 2 */ ompute newage2; if age ne . then hold_age=age; newage2=hold_age*1. 5; endcomp; /* method 3 */ compute before age; before_age=age; endcomp; compute newage3; newage3=before_age*1. 5; endcomp; run; 4 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued In the first method, the value for NEWAGE1 will contain a value only when AGE has a value for the sam e row. In the second method, the value of NEWAGE2 will contain a value for every row because it is obtaining a value from the DATA step variable HOLD_AGE. In the third method, the value of NEWAGE3 will contain a value for every row because it is obtaining a value from the DATA step variable BEFORE_AGE. The DATA step variable is created in the COMPUTE BEFORE AGE block. Behind the scenes, a DATA step variable changes values only through the code instructions. Also, behind the scenes, GROUP and ORDER numeric input data set variables are internally set to a blank in the printed output report at the RBREAK level. A COMPUTE AFTER block with an assignment statement for a numeric GROUP or ORDER variable at the RBREAK level will be ignored. A DISPLAY is always set to a blank at the BREAK and RBREAK levels. If you are routing the report output to an ODS destination, using a COMPUTE block CALL DEFINE statement with the STYLE attribute name and a style option that will accept text, such as PRETEXT=, is a way to override the blank values. A COLUMN STATEMENT VARIABLE VERSUS A DATA STEP VARIABLE PROC REPORT creates a column type of output report based on the variables and statistics listed in the COLUMN statement. Any variable from the input data set that is to be used as a report column or used in a COMPUTE block has to be listed in the COLUMN statement. The placement of the report items, variables, and statistics in the COLUMN statement is very important. PROC REPORT reads and processes the report items from the COLUMN statement in a left-to-right, top-to-bottom direction. Until the report item is processed, it will be initialized to missing for numeric variables and blank for character variables. Once the entire COLUMN statement report-items are processed for a row, PROC REPORT reinitializes all of the report-items back to missing for numeric and blank for character variables. Then PROC REPORT begins the process all over again for the next row of data by processing the report items in the COLUMN statement in a left-to-right direction. Behind the scenes, PROC REPORT consolidates all the input data set variables and statistics listed in the COLUMN statements for the execution of RBREAK BEFORE and BREAK BEFORE statements. For example, the RBREAK, meaning the report break, in the following code is calculated first: proc report nowd data=sashelp. class; col sex age,(height weight); define age / group; define height / min format=8. 2 ‘Height min’; efine weight / max format=8. 2 ‘Weight max’; rbreak before / summarize; run; The output is shown in Output 4. Output 4. PROC REPORT Output Showing the RBREAK Values COMPUTE blocks are also sensitive to the placement of the variables and statistics in the COLUMN statement. As PROC REPORT processes the report-items in a left-to-right direction, any associated COMPUTE blocks are also processed in the same order. This means that in a COMPUTE block that is based on a COLUMN statement reportitem, any referenced variable or statistic to the right of the COMPUTE block variable is missing. Simply put, PROC REPORT does not know about any report-item that is to the right of the COMPUTE block variable in the COLUMN statement. A DATA step variable, also referred to as a temporary variable, is different from the COLUMN statement variable. A DATA step variable is created and used in a COMPUTE block. It is not part of the COLUMN statement. The value of the DATA step variable comes directly from the code in a COMPUTE block. DATA step variables are often used in IF statements when there is a comparison of the current row value to that of the value in the DATA step variable. PROC REPORT recomputes a COMPUTED variable value at every row, including at the BREAK and RBREAK rows. Values are not accumulated. An accumulated value can be calculated quickly using a DATA step variable in a 5 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued COMPUTE block because the value changes through the code only. Behind the scenes, DATA step variables used to accumulate values also include values at the BREAK and RBREAK levels. Adding an IF statement to check the value of the _BREAK_ automatic variable will help control when the accumulations takes place. In the following code, the computed variable TOTAL_AGE is the sum of two variables from the COLUMN statement. ACCUM_AGE is the accumulated value of AGE stored in the DATA step variable TEMP_AGE. proc report nowd data=sashelp. class; col age total_age accum_age height weight; define age / group; define height / min format=8. 2 ‘Height min’; define weight / max format=8. 2 ‘Weight max’; define total_age / computed; define accum_age / computed; compute total_age; if _break_ eq ‘ ‘ then total_age+age; endcomp; compute accum_age; if _break_ eq ‘ ‘ then temp_age+age; accum_age=temp_age; endcomp; break after / summarize; run; The output is shown in Output 5. Output 5. Comparison of the TOTAL_AGE Column and the ACCUM_AGE Column Notice the difference between the TOTAL_AGE column and the ACCUM_AGE column in Output 5. The TOTAL_AGE and AGE values are reinitialized for every row so that the values are not accumulated. The ACCUM_AGE and AGE values are reinitialized for every row but the TEMP_AGE value is not. TEMP_AGE is a DATA step variable and is not listed in the COLUMN statement. The result is an accumulated column for ACCUM_AGE. The _BREAK_ automatic variable will be blank for detail rows. A quick way to determine the value of a _BREAK_ variable value is to create an output data set with the OUT= option in the PROC REPORT statement and examine the _BREAK_ values in the output data set. DISCOVERING WAYS TO MOVE COLUMN HEADERS By default, the column heading values come from the label in the DEFINE statement. If you do not specifically specify a label in your code either in the DEFINE statement or through a LABEL statement, add the LIST option to the PROC REPORT statement, submit your code, and look at the code that is created in the SAS log. Behind the scenes, PROC REPORT will generate the default values it needs to create the output report. One of the default values is the label specified in the DEFINE statement. All of the column headings from the label option in the DEFINE statement span over a single column with one exception, variables that are defined as across variables. A column heading for an across variable can span over multiple columns. In the COLUMN statement, a comma after the across variable indicates which variable or group of variables are associated with the across variable. An example of PROC REPORT code containing an across variable is shown below: 6 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued title ‘Default Column Headers’; proc report nowd data=sashelp. shoes; column Region Product,Sales; define Region / group format= $25. â€Å"Region†; define Product / across format= $14. â€Å"Product†; define Sales / sum format= DOLLAR12. â€Å"Total Sales†; run; Output 6 shows the PROC REPORT example output. Output 6. Default Column Heading with an Across Label Spanning over Multiple Columns Behind the scenes, each unique value of an across variable is transposed from a column to a row. The row data is not available for any further processing within the code as it now becomes a column heading. In Output 6, each value of Product becomes a column with the Product value as the column heading. Under each Product column heading value is the Sales variable column heading and data for the particular Product value. The heading label Total Sales for every column is redundant. The output report would look better if Total Sales were removed from under the Product column heading and placed above the Product column headings. PROC REPORT provides a way to add column heading information that can span over multiple columns by using a SPANNED HEADER. The SPANNED HEADER is used in the COLUMN statement in this way: column (‘spanned header text’ variable-list)†¦; The following example code shows three different methods for using the DEFINE statement and SPANNED HEADERS for creating the column heading: proc report nowd data=sashelp. shoes split=’*’; olumn region (‘(1)Total Sales’ ‘(1)Product’ ‘(2)Total Sales*(2)Product’ product, sales); define region / group format= $25. â€Å"Region†; define product / across format= $14. â€Å"(3)Total Sales† â€Å"(3)Product† ; define sales / sum format=DOLLAR12. † † ; run; You can mix and match the methods. There is no best prac tice for using each method. The method that you choose depends on the look that you want for the column heading. The output is shown in Output 7. 7 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued Output 7. Moved Column Headings from Different Methods The three different methods are numbered in the example code and the output shown in Output 7: method (1) uses multiple SPANNED HEADER text; method (2) uses SPANNED HEADER text with the PROC REPORT SPLIT= character of * to force the text to continue on the next row; method (3) uses multiple labels in the DEFINE statement (you can also use a split character here). Let’s choose method (1) for the column heading and move the column heading to the top row. You can remove the label from the DEFINE statement by replacing the Region text with a blank â€Å" â€Å" and moving the Region text to a SPANNED HEADER in the COLUMN statement. There are three rows of headers. This means that the text of Region will need to be pushed up to the top row. You can do this by adding blank SPANNED HEADER text after the Region text in the COLUMN statement. Here is the modified PROC REPORT code with method (1) and the column heading text of Region: proc report nowd data=sashelp. shoes split=’*’; column (‘Region’ ‘ ‘ ‘ ‘ ‘ ‘ Region) (‘Total Sales’ ‘Product’ Product , Sales); define Region / group format= $25. † † ; define Product / across format= $14. † † ; define Sales / sum format=DOLLAR12. † † ; run; Output 8 shows the output. Output 8. Moving Column Headings Using Blank SPANNED HEADERS Behind the scenes, when there is a blank header row and the output is routed to an ODS destination, the blank row is removed automatically. This does not affect the LISTING output. If you want to preserve the blank row, change the blank label on one of the DEFINE statements that is not an across variable to some value. Then add a style 8 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued statement for the header, assigning the foreground color to the background color. For example, if your column heading background is purple, then the style statement for the DEFINE statement would look something like this: style(header)=[background=purple foreground=purple] With the background and the foreground assigned to the same color, any text in the label will blend into the background color. CHANGING DEFAULT ATTRIBUTES WITH STYLES Beginning with SAS 9. 3, the default output destination is HTML. Behind the scenes, PROC REPORT is using the HTMLBLUE style. All the output in this paper all uses this default destination. What if you are not fond of the HTMLBLUE style? Then, what do you do if you want to change the default style of your output report? If you want to change the style of HTMLBLUE to another style that is supplied in the Sashelp. Tmplmst template store, you can run the following code to create a list of all the styles that are available: proc template; list styles; run; You can apply the styles by adding an ODS statement with the specified style before the PROC REPORT statement. For example, if you want to use the FESTIVAL style instead of the default HTMLBLUE style, the ODS statement would look similar to this: ods html style=festival; PROC REPORT also provides the ability to change the styles of the different report locations. Here are the style location values and a description for each that indicates which part of the report is affected: ? ? ? ? ? ? REPORT—the report as a whole HEADER|HDR—the column headings COLUMN—the column cells LINES—the lines generated by LINE statements SUMMARY—the summary rows created from BREAK and RBREAK statements CALLDEF—the cells identified by a CALL DEFINE statement All of the style locations are valid in the PROC REPORT statement. These styles apply to the entire location that is specified. The style locations can also be combined if the same attribute is being applied to multiple locations. This is the correct syntax: style= The following code shows how to apply the styles in the PROC REPORT statement: ods html style=festival; title ‘Styles on the PROC REPORT statement’; proc report nowd data=sashelp. class(obs=5) split=’*’ style(report)=[outputwidth=7in] style(column)=[background=lavender] style(header)=[foreground=green] style(summary)=[background=purple foreground=white] style(lines)=[background=lime] style(calldef)=[background=yellow foreground=black]; olumn name age sex weight height; define name / display; define age / order; define sex / display; define height–weight / sum; break after age / summarize; rbreak after / summarize; compute before; line ‘this is the beginning’; endcomp; 9 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued compute age ; if _break_ ne ‘ ‘ then call define(‘age’,’style’,’style=[pretext=†total†]’); endcomp; run; The STYLE options in the preceding PROC REPORT statement are formatting the output in this way: ? ? ? style(report) sets the report output width to 7 inches. style(column) sets the background for all of the columns to lavender. style(header) applies a green foreground to all of the headers. style(summary) sets all of the summary rows created from BREAK and RBREAK statements with a ? ? style(lines) sets the line statements to a background of lime. style(calldef) sets the foreground to black and background to yellow for the CALL DEFINE locations. background of purple and a foreground of white. The resulting report output is shown in Output 9. Output 9. Changing Default Styles in the PROC REPORT Statement The DEFINE statement supports two types of styles: STYLE(COLUMN) and STYLE(HEADER). STYLE(COLUMN) applies to the entire column but will not override any styles that are applied to other locations in the column. Using the same code in this section, you can modify the DEFINE statement for the NAME variable that creates the Name column like this: define name / display style(column header)=[background=plum]; The background of the HEADER and COLUMN locations for the NAME variable is set to plum. Because styles were applied already to the SUMMARY location, only the header and detail cells for the NAME column are changed to plum. A CALL DEFINE statement is used to override the SUMMARY style for the NAME column. The CALL DEFINE statement is discussed more in the next section. Output 10 is the resulting report output. Output 10. Changing the Default Styles for the NAME Column Using a DEFINE Statement 10 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued The BREAK and RBREAK statements support style changes for summary lines, customized lines, or both. A summary line is created from the BREAK or RBREAK statements. A customized line is created from a LINE statement within a COMPUTE BEFORE or a COMPUTE AFTER COMPUTE block. The is a break-variable that is defined as either GROUP or ORDER or the _PAGE_ location. A style on the BREAK and RBREAK statements will not override a cell style that is created by a CALL DEFINE statement or the STYLE(CALLDEF) option in the PROC REPORT statement. A CALL DEFINE statement will be used to make the style changes in this case. Using the same code in this section, you can modify the RBREAK statement like this: break after / summarize style=[background=pink foreground=black font_weight=bold]; The COMPUTE BEFORE or a COMPUTE AFTER supports a style option in the COMPUTE statement. A forward slash ‘/’ precedes the style option in the COMPUTE statement. The style option only applies to the LINE statement and will override any previous STYLE(LINES) requests. The style applies to all of the LINE s tatements within the COMPUTE block. Using the code from this section, a COMPUTE AFTER AGE block is added to show a style modification to the foreground of the LINE statement output. ompute after age/ style=[foreground=red]; line ‘ this is after age’; endcomp; A CALL DEFINE is a statement within a COMPUTE block. To change a style using a CALL DEFINE statement, the STYLE attribute is specified for the attribute-name and the style option is specified as the value. The following is the syntax for a CALL DEFINE statement: call define (column-id | _ROW_ , ‘attribute-name’, value); Here is the code with all of the style modifications: ods html style=festival; title ‘Changing Default Attributes with Styles’; proc report nowd data=sashelp. lass(obs=5) split=’*’ style(report)=[outputwidth=7in] style(column)=[background=lavender] style(header)=[foreground=green] style(summary)=[background=purple foreground=white] style(lines)=[background=lim e] style(calldef)=[background=yellow foreground=black]; column name age sex weight height; define name / display style(column header)=[background=plum]; define age / order; define sex / display; define height–weight / sum; break after age / summarize; rbreak after / summarize style=[background=pink foreground=black font_weight=bold]; ompute before; line ‘this is the beginning’; endcomp; compute age; if _break_ ne ‘ ‘ then call define(‘age’,’style’,’style=[pretext=†total†]’); endcomp; compute after age/ style=[foreground=red]; line ‘ this is after age’; endcomp; run; The updated output is shown in Output 11. 11 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued Output 11. Final Report Output with Changes to Default Attributes Using Style Options You also can change styles by using inline formatting. Inline formatting is a feature of the Output Delivery System that enables you to insert simple formatting text into ODS output by using the ODS ESCAPECHAR statement. For example, here is a TITLE statement and the resulting output: title ‘This is ^{style [color=red font_weight=bold] RED}’; This is RED The inline formatting in the TITLE statement changes the text of RED to the color of red. The caret (^) in the TITLE statement is the declared ODS ESCAPECHAR. The ODS ESCAPECHAR statement has to be submitted before any inline formatting will take place. The caret (^) can be any unique character that would not normally be in your code. USING THE CALL DEFINE STATEMENT The previous section discussed using the CALL DEFINE statement as a way to change a style by specifying the STYLE attribute for the attribute-name and the STYLE= option for the value. As mentioned earlier, this is the syntax for the CALL DEFINE statement: call define (column-id | _ROW_ , ‘attribute-name’, value); The column-id is the column name or the column number. The column-id can be specified as one of the following: ? ? ? ? ? ? a character literal (in quotation marks) that is the column name a character xpression that resolves to the column name a numeric literal that is the column number a numeric expression that resolves to the column number a name of the form _Cn_, where n is the column number the automatic variable _COL_, which identifies the column that contains the report-item to which the compute block is attached _ROW_ is an automatic variable that indicates that the value is to be applied to the entire row. Currently, the _ROW_ variable is applicable only with the STYLE attribute name. Behind the scenes, all of the COLUMN statement report-items are used to create the report. The columns created from the COLUMN statement report-items are placed in the same order, left to right. Each created column has a column number, beginning with ‘1’ for the left-most column on the report. All report-items have a column number, even if there are NOZERO, NOPRINT, and COMPLETECOLS options specified, because these options are applied after the report is created in memory. The following code shows the column number: 12 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued data test; nput type $ color $ counter; cards; aaa purple 1 aaa orange 1 bbb purple 2 ccc orange 2 ; run; proc report nowd data=test missing ; col counter type,color,counter=num; define counter / group ‘ ‘; define type / across ‘ ‘; define color / across ‘ ‘; define num / sum ‘ ‘ nozero; compute num; call define(4,’style’,’style=[background=purple]’) ; endcomp; run; Output 12 shows the output. Output12. PROC REPORT Output with the Incorrect Column Number Used in a CALL DEFINE Statement In the code above, the CALL DEFINE statement applies a purple background to the fourth column. There is a NOZERO option in the DEFINE statement for NUM, which instructs the report to not print that column if all the column values are zero or missing. By adding the SHOWALL option to the PROC REPORT statement and resubmitting the code, the resulting output in Output 13 shows the fourth column with a purple background. The SHOWALL option displays all of the NOPRINT option and NOZERO option columns in the output report. This option, with the LIST option, is good to use when debugging PROC REPORT code. proc report nowd data=test missing showall; Output 13. Resulting Output When the SHOWALL Option Is Applied to the PROC REPORT Statement If the intention is to change the background of the fourth column that is shown in Output 13, then here is the correct CALL DEFINE statement: call define(5,’style’,’style=[background=purple]’); There is no limit to the number of CALL DEFINE statements that can be used in a COMPUTE block. If there are duplicate styles that need to be applied to different cells, you might want to consider consolidating the CALL DEFINE statements. Behind the scenes, PROC REPORT calls on the SAS DATA step compiler when a COMPUTE block is used. Most of the SAS DATA step code functionally is available to you when you create code for a COMPUTE block. One consolidation technique is to use a DO loop with a CALL DEFINE to loop through the column number to apply a style. Using the code in this section, here is a modification to the COMPUTE NUM block: 13 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued compute num; call define(_row_,’style’,’style=[background=wheat]’); do purple_column= 3 to 5 by 2; call define(purple_column,’style’,’style=[background=purple foreground=white font_weight=bold]’); end; ndcomp; The output is shown in Output 14. Output 14. Output Using Modified Code from the COMPUTE NUM Block We have seen examples of using the attribute name of STYLE. There are other attribute names that can be used. For example, if you want to make the contents of each cell a link to a specified Uniform Re source Locator (URL), you can use the URL attribute as the attribute-name and the link as the value. Before ODS, and yes, there was a time before ODS, there was the Output Window (known now as the LISTING destination). The only attribute that is specified in a CALL DEFINE statement for use in the Output Window is the  ® FORMAT attribute. Once ODS was introduced in SAS 7, the ability to use the FORMAT attribute included all output destinations. _ROW_ cannot be used when the FORMAT attribute name is specified in the CALL DEFINE statement. The best use of the FORMAT attribute can be illustrated by using the output from a PROC MEANS using the default statistics. The following PROC MEANS code creates an output data set and a PROC PRINT to print the output: proc means data=sashelp. class nway; where age=15; class age; var weight height; output out=means_output; run; proc print; run; The output is shown in Output 15. Output 15. PROC PRINT Output In looking at the output in Output 15, it really does not make sense for the N statistic for the WEIGHT and HEIGHT variables to have decimals. PROC REPORT allows an easy way to change the format for these two cells by using the CALL DEFINE statement within a COMPUTE block. The following PROC REPORT shows the CALL DEFINE with the FORMAT attribute. 14 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued proc report nowd data=means_output; col age _stat_ weight height; define age / order; efine _stat_ / display; define weight / sum format=8. 2; define height / sum format=8. 2; compute height; if _stat_=’N’ then do; call define(‘Weight. sum’,’format’,’8. ‘); call define(‘Height. sum’,’format’,’8. ‘); end; endcomp; run; The results are shown in Output 16. Output 16. PROC REPORT Output with a Cell Fo rmat Change The first row under the headers in Output 16 shows the N statistic for both the WEIGHT and HEIGHT columns without decimals. Any time there is a need to change the format of a cell within a column, the CALL DEFINE with the FORMAT attribute is the best method to use. The other choice would be to create a computed character variable version of the value with the desired format. But what fun would that be? EXPLORING MULTILABEL FORMATTING TO CREATE SUBGROUP COMBINATIONS You might be asking yourself, what is multilabel formatting? Admittedly, the concept of multilabel formatting baffled me at first. I knew other procedures such as PROC TABULATE and PROC MEANS worked with multilabel formatting, and therefore could not envision it with PROC REPORT. Multilabel formatting enables PROC REPORT to use a format label or labels for a given range or overlapping ranges to create a combination of subgroups. The multilabel formats are applied to either group or across variables. It was not until I had a scenario where I needed to create a report with various subgroupings that I began to appreciate using multilabel formatting. Unfortunately, because multilabel formatting was not available for PROC REPORT in the version of SAS that I was using, my only choice was to slice and dice the data prior to the PROC REPORT step. Multilabel formatting is new for PROC REPORT in SAS 9. 3. The multilabel format is created with PROC FORMAT. The option of multilabel within parentheses is applied to the VALUE statement after the format name. A syntax error, such as the following, will occur in the SAS log if the multilabel option is added without the parentheses: ERROR 22-322: Syntax error, expecting one of the following: a quoted string, a numeric constant, a datetime constant, a missing value, ;, (, LOW, OTHER. ERROR 202-322: The option or parameter is not recognized and will be ignored. If there are overlapping ranges on the labels of the VALUE statement, error messages such as the following will be created in the SAS log for each overlapping range: ERROR: These two ranges overlap: LOW-16 and 11-13 (fuzz=1E-12). ERROR: These two ranges overlap: 11-14 and 11-15 (fuzz=1E-12). In the following example PROC FORMAT code, the multilabel option within parentheses is listed after the format name of AGEFMT in the VALUE statement: 15 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued proc format; value agefmt (multilabel) 11-13 =’ 11 to 13†² 11-14 =’ 11 to 14†² 11-15 =’ 11 to 15†² 11-high =’11 and above’ low-16 =’16 and below’ ; run; You might have noticed that some of the labels contain leading blanks. Behind the scenes, PROC REPORT applies the format before creating groups and the formatted values are used for ordering. Without the leading spaces, the category of ‘11 and above’ will be the first group printed because an ‘a’ in ‘and’ precedes a ‘t’ in ‘to’ for an ascending ordering schema. Adding leading spaces is a way to ensure the desired grouping order. In the example PROC REPORT code below, AGEFMT format is added to the DEFINE AGE statement. Notice that there is also the option of MLF. The MLF option is required when multilabel formatting is desired. itle â€Å"Multilabel Formatting†; proc report data=sashelp. class nowd; col sex age (‘Mean’ height weight); define sex / group; define age / group mlf format=agefmt. ‘Age Groups’; define height / mean format=6. 2 ‘Height (in. )’; define weight / mean format=6. 2 ‘Weight (lbs. )’; rbreak after / summarize; ru n; The output is shown below in Output 17. Output 17. Multilabel Formatting HTML Output The multilabel formatting is applied only to a group or across variable. If you try to apply the MLF option to any other definition, a warning message will be produced. For example, if the group variable is changed to an order variable for the DEFINE AGE statement, the SAS log will show the following warning: WARNING: The MLF option is valid only with GROUP and ACROSS variables. MLF will have no effect for the variable age. If you need to create a detailed report instead of a summary report, you can change any other group variable to an order variable or add an order variable. For example, using the code in this section, if the DEFINE SEX/GROUP is changed to DEFINE SEX/ORDER, a detailed report showing a row for every observation from the input data set will be produced. 16 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued DID YOU KNOW†¦ Now that you know the behind-the-scenes secrets of PROC REPORT, here are some other little-known facts of interest. Did you know that PROC REPORT started out as an interactive windowing product and the interactive window is the default environment? Are you not sure what an interactive window is? Most of us have accidentally invoked PROC REPORT code without the NOWD, NOWINDOWS, or the NOFS option and end up in an unfamiliar window. This unfamiliar window is actually the REPORT window. Here is sample PROC REPORT code that invokes the REPORT window: proc report data=sashelp. class; run; The REPORT window is shown in Display 1. Display 1. The REPORT Window Showing PROC REPORT Code In fact, the REPORT window can be found in different places of SAS. For example, the Report Editor under the Tools menu and the Design Report selection under Reporting in the Solutions menu item both invoke the REPORT window. Entering TREPORT in the command line box will also invoke the REPORT WINDOW. For anyone new to PROC REPORT, using the report in the window mode is a wonderful way to quickly create an immediate report. The code can be found in the Report Statements selection located in the Tools menu from the REPORT window. For experienced PROC REPORT coders, using the REPORT window to create the code saves time typing. Make sure that the NOWD option is added to the PROC REPORT statement when you are running in an editor. As new options are added to PROC REPORT, most of them will also work in the windowing mode. The exception is with ODS. The windowing mode of PROC REPORT does not support any of the ODS functionality. So check it out!  ®  ® Also, did you know that for SAS Enterprise Guide users, there is a wizard that uses PROC REPORT behind the scenes? It is called the List Report wizard. You can invoke the List Report window through the Describe selection under the Tasks menu item. The List Report wizard was designed for the user who has little to no SAS or PROC REPORT experience. Only the underlying code reveals that PROC REPORT was used behind the scenes. Display 2 shows the SAS Enterprise Guide List Report wizard. Display 2. The SAS Enterprise Guide List Report Wizard 17 PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS ® Software, continued CONCLUSION So there you have it. We have discovered the secrets behind how PROC REPORT is made by exploring a numeric variable in a COMPUTE block, the difference between an input data set variable and a DATA step variable, and ways to move column headings, change attributes with styles, use the CALL DEFINE statement, and explore the multilabel formatting. We dug deep into example code and even unwrapped some of the little known facts about PROC REPORT. That is all the time we have and thank you for taking part in PROC REPORT Unwrapped! RECOMMENDED READING Booth, Allison McMahill. 2011. Beyond the Basics: Advanced PROC REPORT Tips and Tricks Updated for SAS ® 9. 2. † Proceedings of the SAS Global Forum 2012 Conference. Cary, NC: SAS Institute Inc. Available at support. sas. com/resources/papers/proceedings11/246-2011. pdf. Booth, Allison McMahill. 2010. â€Å"Evolve from a Carpenter’s Apprentice to a Master Woodworker: Creating a Plan for Your Reports and Avoiding Common Pitfalls in REPORT Procedure Coding. † Proceedings of the SAS Global Forum 2010 Conference. Cary, NC: SAS Institute Inc. Available at support. sas. com/resources/papers/proceedings10/1332010. pdf. Booth, Allison McMahill. 2007. â€Å"Beyond the Basics: Advanced PROC REPORT Tips and Tricks. † Proceedings of the SAS Global Forum 2007 Conference. Cary, NC: SAS Institute Inc. Available at support. sas. com/rnd/papers/sgf07/sgf2007-report. pdf. SAS Institute Inc. 2012. â€Å"Find Your Answer in the SAS Knowledge Base. † SAS Customer Support Web Site. Available at support. sas. com/resources/.  ® SAS Institute Inc. 2012. â€Å"REPORT Procedure. † Base SAS 9. 3 Procedures Guide. Cary, NC: SAS Institute Inc. Available at support. sas. com/documentation/cdl/en/proc/63079/HTML/default/viewer. tm#p0bqogcics9o4xn17yvt2qjbgdpi. htm. SAS Institute Inc. 2012. â€Å"REPORT Procedure Windows. † Base SAS ® 9. 3 Procedures Guide. Cary, NC: SAS Institute Inc. Available at support. sas. com/documentation/cdl/en/proc/63079/HTML/default/viewer. htm#p10d8v5dnafqb9n1p35e7kp9q67e. htm. SAS Institute Inc. 2008. â€Å"The REPORT Procedure: Getting Started with the Basics. † Technical Paper. Cary, NC: SAS Institute Inc. Available at support. sas. com/resources/papers/ProcReportBasics. pdf. SAS Institute Inc. 2008. â€Å"Using Style Elements in the REPORT and TABULATE Procedures. † Technical Paper. Cary, NC: SAS Institute Inc. Available at support. sas. com/resources/papers/stylesinprocs. pdf. CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Allison McMahill Booth SAS Institute Inc. SAS Campus Drive Cary, NC 27513 E-mail: support@sas. com Web: support. sas. com SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries.  ® indicates USA registration. Other brand and product names are trademarks of their respective companies. 18 How to cite Proc Report Secreates, Papers

Friday, December 6, 2019

Chicken Sitting free essay sample

Chicken Sitting I don’t live in a city, but I can’t exactly say that I live in a farm town either. I don’t have to wake up before dawn everyday to milk a cow- but what I do have is a best friend who owns chickens. My best friend Maggie and her family started raising chickens when we were both about eleven. What started off as twelve eggs in an incubator eventually turned into thirty noisy birds. Every day when I used to walk over to Maggie’s house, we’d go out to the coops and hunt for eggs. It was like receiving a warm little treasure when we would lift up a hen and scoop out the eggs from underneath her. We became chicken experts together, so it wasn’t much of a surprise when her parents asked me to chicken sit when they went on vacation. We will write a custom essay sample on Chicken Sitting or any similar topic specifically for you Do Not WasteYour Time HIRE WRITER Only 13.90 / page It was one of the coldest weeks of the year, and Maggies family had left me tending to the chickens in snow up to my shins. I would trudge down the street to her house twice a day to let the chickens into their enclosure, collect eggs, and then shoo the birds back into their coops at night. I didn’t mind the work most of the time, but on the last night of my chicken duties, the situation became ugly. Almost every day that week snow had flurried down, and the nights were frigid enough that the new layers of snow would freeze over. When I stepped on the untouched snow, it was like I was breaking shards of ice beneath me. Despite slightly frozen hands, things were going as well as they could- considering the conditions. I collected a few eggs, and scattered some cracked corn as a late night treat for the hens. The real trouble came when it was time to put the roosters to sleep. Maggies dad was a clever man who rigged up some contraptions that were meant to make chicken tending much easier. One of his innovations was a pulley system that made it possible to close the chicken coop doors without having to enter the enclosure. The exits and entrances were connected to a thick rope with wooden spikes at the end. I would pull the rope to open the door, and then wedge the spike between holes in the wire fencing to keep the door open. To close the door, I would just un-jam the wooden piece from the wire and let the rope become limp. Usually the hook and eye that served as the pulley didn’t cause a problem, but that night a piece of ice had formed on the rope that shut the roosters’ door. The door to the rooster’s coop would close partially, but the rope would become jammed every time the ice hit the metal eye. I tried everything to get the door to close. I tried letting the rope go quickly, thinking the cylindrical chunk of ice would break when it hit the metal, but it didn’t work. After fifteen minutes of futile attempts, I became frustrated and started the walk back to my house to ask my mom for help. On the journey home, I thought about what Maggies dad had told me about how it was okay to leave the door open if I couldn’t make it closed for some reason. I knew it was practically impossible for coyotes or other animals to enter the rooster pen, but I still felt horrible about leaving my job unfinished. I even felt guilty about le aving the roosters susceptible to the elements- even if it was only for one night. By the time I was back at my house, it was dark, so my mom grabbed some flashlights and drove us back down the street. She assessed the situation and tried the same thing I had, which yielded similar results. I was devastated, but my mom had an idea that I failed to think of myself. We rushed home again and rummaged through the drawers until we found a neglected BIC lighter. Her plan seemed flawless- we would simply melt away the ice which would allow me to close the door all the way. I was frustrated that I hadn’t thought of something that practical on my own, but was excited and relieved that I would finally be able to close the uncooperative door. I would soon be disappointed though, because we hadn’t accounted for the wind that would blow the flames away from the ice and onto our fingers. Again and again my mom and I took turns trying to get the flame to cooperate, but with no luck. Eventually we had to give up; staying at the coops would be a waste of time. Although my week of chicken sitting was over five years ago, I still have the same attitude when it comes to fulfilling a responsibility. I’m willing to make sacrifices and accept help from others, as long as job gets done.