SAS_Basic9
SAS Base 50题 带解释【终极版】

SAS 认证考试样题SAS 中文论坛网站1.A raw data file is listed below.1---+----10---+----20---+---son Frank 01/31/89daughter June 12-25-87brother Samuel 01/17/51The following program is submitted using this file as input:data work.family;infile 'file-specification';<insert INPUT statement here >run;Which INPUT statement correctly reads the values for the variable Birthdate as SAS date values?a. i nput relation $ first_name $ birthdate date9.;b.i nput relation $ first_name $ birthdate mmddyy8.; c.i nput relation $ first_name $ birthdate : date9.; d.i nput relation $ first_name $ birthdate : mmddyy8.; Correct answer: dAn informat is used to translate the calendar date to a SAS date value. The date values are in the form of two-digit values for month-day-year, so the MMDDYY8. informat must be used. When using an informat with list input, the colon-format modifier is required to correctly associate the informat with the variable name.You can learn about•informats in Reading Date and Time Values • the colon-format modifier in Reading Free-Format Data .2.A raw data file is listed below.1---+----10---+----20---+---Jose,47,210Sue,,108The following SAS program is submitted using the raw data file above as input:data employeestats;<insert INFILE statement here>input name $ age weight;run;The following output is desired:name age weight Jose 47 210 Sue . 108Which of the following INFILE statements completes the program and accesses the data correctly?a. infile 'file-specification ' pad;b. infile 'file-specification' dsd;SAS 认证考试样题SAS 中文论坛网站c. infile 'file-specification ' dlm=',';d. infile 'file-specification ' missover;Correct answer: bThe PAD option specifies that SAS pad variable length records with blanks. The MISSOVER option prevents SAS from reading past the end of the line when reading free formatted data. The DLM= option specifies the comma as the delimiter; however, consecutive delimiters are treated as one by default. The DSD option correctly reads the data with commas as delimiters and two consecutive commas indicating a missing value like those in this raw data file.You can learn about• the PAD option in Reading Raw Data in Fixed Fields•the MISSOVER option in Creating Multiple Observations from a SingleRecord• the DLM= option and the DSD option in Reading Free-Format Data . 3.The following program is submitted:data numrecords;infile cards dlm=',';input agent1 $ agent2 $ agent3 $;cards;jones,,brownjones,spencer,brown;run;What is the value for the variable named Agent2 in the second observation?a.brown b.spencer c.' ' (missing character value) d. There is no value because only one observation is created.Correct answer: dThe CARDS statement enables you to read instream data. Any number of consecutive commas are considered to be a single delimiter as a result of the DLM= option, and the length of each variable defaults to 8 bytes. Therefore, the values jones , brownjon , and spencer are assigned to Agent1, Agent2, and Agent3, respectively, for the firstobservation. The rest of the data on the record is not read by the INPUT statement and is not output to the data set.You can learn about•the CARDS statement in Creating SAS Data Sets from Raw Data • the default length of variables in Reading Free-Format Data .SAS认证考试样题4.A raw data file is listed below.1---+----10---+----20---+----30---+----40---+----50TWOSTORY 1040 2 1SANDERS ROAD $55,850CONDO 2150 4 2.5JEANS AVENUE $127,150The following program is submitted using this file as input:data work.houses;infile 'file-specification';<insert INPUT statement here>run;Which one of the following INPUT statements reads the raw data file correctly?a.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street 16.@40 price dollar8;b.input @1 style $8+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street $16@40 price dollar8.;c.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street $16.@40 price dollar8.;d.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3street 16.@40 price dollar8.;Correct answer: cFormatted input requires periods as part of the informat name. The period is missing from the variables Style and Street in Answer b, the variable Baths in Answer d, and the variable Price in Answer a (which is also missing a dollar sign to read the variable Street as a character value).You can learn about formatted input and informats in Reading Raw Data in Fixed Fields.5. The following SAS program is submitted at the start of a new SAS session:libname sasdata 'SAS-data-library';data sasdata.sales;set sasdata.salesdata;profit=expenses-revenues;run;SAS中文论坛网站SAS 认证考试样题SAS 中文论坛网站proc print data=sales;run;The SAS data set Sasdata.Salesdata has ten observations. Which one of the following explains why a report fails to generate?a. The DATA step fails execution.b. The SAS data set Sales does not exist.c. The SAS data set Sales has no observations.d. The PRINT procedure contains a syntax error.Correct answer: bThe DATA step creates a permanent SAS data set, Sasdata.Salesdata . The PRINTprocedure is printing a temporary SAS data set, Sales , that is stored in the Work library. At the beginning of the SAS session, Work.Sales does not exist.You can learn about•creating permanent data sets with the DATA step in Creating SAS Data Setsfrom Raw Data• temporary data sets in Basic Concepts . 6. Which action assigns a reference named SALES to a permanent SAS data library? a. Issuing the command:libref SALES 'SAS-data-library'b. Issuing the command:libname SALES 'SAS-data-library'c.Submitting the statement: libref SALES 'SAS-data-library';d. Submitting the statement: libname SALES 'SAS-data-library';Correct answer: dThe LIBNAME statement assigns a reference known as a libref to a permanent SAS data library. The LIBNAME command opens the LIBNAME window.You can learn about the LIBNAME statement in Referencing Files and Setting Options .7. The following SAS program is submitted:data newstaff;set staff;<insert WHERE statement here>run;Which one of the following WHERE statements completes the program and selects only observations with a Hire_date of February 23, 2000?a. where hire_date='23feb2000'd;b. where hire_date='23feb2000';c. where hire_date='02/23/2000'd;SAS 认证考试样题SAS 中文论坛网站d. where hire_date='02/23/2000';Correct answer: aA SAS date constant must take the form of one- or two-digit day, three-digit month, and two- or four-digit year, enclosed in quotation marks and followed by a d('ddmmmyy<yy>'d ).You can learn about SAS date constants in Creating SAS Data Sets from Raw Data .8. Which one of the following SAS date formats displays the SAS date value for January 16, 2002 in the form of 16/01/2002?a. DATE10.b. DDMMYY10.c. WEEKDATE10.d. DDMMYYYY10.Correct answer: bThe requested output is in day-month-year order and is 10 bytes long, so DDMMYY10. is the correct format. Although WEEKDATE10. is a valid SAS format, it does notdisplay the SAS date value as shown in the question above. DDMMYYYY10. is not a valid SAS date format, and the DATE w . format cannot accept a length of 10.You can learn about•the DDMMYY10. format in Creating List Reports • the WEEKDATE10. format in Reading Date and Time Values .9. Which one of the following displays the contents of an external file from within a SAS session?a. the LIST procedureb. the PRINT procedurec. the FSLIST procedured. the VIEWTABLE windowCorrect answer: cThe PRINT procedure and VIEWTABLE window display the values in SAS data sets. The FSLIST procedure displays the values in external files. There is no LIST procedure in SAS.You can learn about• the PRINT procedure in Creating List ReportsSAS 认证考试样题SAS 中文论坛网站• the VIEWTABLE window in Referencing Files and Setting Options .10. The SAS data set Sashelp.Prdsale contains the variables Region and Salary with 4 observations per Region . Sashelp.Prdsale is sorted primarily by Region and within Region by Salary in descending order.The following program is submitted:data one;set sashelp.prdsale;retain temp;by region descending salary;if first.region thendo;temp=salary;output;end;if last.region thendo;range=salary-temp;output;end;run;For each region, what is the number of observation(s) written to the output data set? a. 0b. 1c. 2d. 4Correct answer: cThe expression first.region is true once for each region group. The expression last.region is true once for each region group. Therefore, each OUTPUT statement executes once for a total of 2 observations in the output data set.You can learn about the FIRST.variable expression and the OUTPUT statement in Reading SAS Data Sets .11. The following SAS program is submitted:proc contents data=sasuser.houses;run;The exhibit below contains partial output produced by the CONTENTS procedure. Data Set NameSASUSER.HOUSES Observations 15 Member TypeDATA Variables 6 EngineV9 Indexes 0 CreatedTuesday, April 22, 2003 03:09:25 PMObservation Length 56 Last ModifiedTuesday, April 22, 2003 03:09:25 PMDeleted Observations0 Protection CompressedNOSAS认证考试样题Data Set Type Sorted NOLabel Residential housingfor saleData Representation WINDOWS_32Encoding wlatin1 Western(Windows)Which of the following describes the Sasuser.Houses data set?a.The data set is sorted but not indexed.b.The data set is both sorted and indexed.c.The data set is not sorted but is indexed.d.The data set is neither sorted nor indexed.Correct answer: dThe exhibit above shows partial output from the CONTENTS procedure, In the top right-hand column of the output, you see that Indexes has a value of 0, which indicates that no indexes exist for this data set. Also, Sorted has a value of NO, which indicates that the data is not sorted.You can learn about the CONTENTS procedure in Referencing Files and Setting Options.12.The following SAS program is submitted:proc sort data=work.test;by fname descending salary;run;Which one of the following represents how the observations are sorted?a. The data set Work.Test is stored in ascending order by both Fname and Salary values.b. The data set Work.Test is stored in descending order by both Fname and Salary values.c. The data set Work.Test is stored in descending order by Fname and ascending order by Salary values.d. The data set Work.Test is stored in ascending order by Fname and in descending order by Salary values.Correct answer: dThe DESCENDING keyword is placed before the variable name it modifies in the BY statement, so the correct description is in descending order by Salary value within ascending Fname values.You can learn about the SORT procedure and the DESCENDING keyword in Creating List Reports.13.The following SAS program is submitted:data names;SAS中文论坛网站SAS 认证考试样题SAS 中文论坛网站title='EDU';if title='EDU' thenelse if title='HR' thenDivision='Human Resources';else Division='Unknown';run;Which one of the following represents the value of the variable Division in the output data set?a. Educatiob. Educationc. Human Red. Human ResourcesCorrect answer: bThe length of the variable Division is set to 9 when the DATA step compiles. Since the value of the variable Title is EDU , the first IF condition is true; therefore, the value of the variable Division is Education .You can learn about•the length of a variable in Understanding DATA Step Processing • IF-THEN statements in Creating and Managing Variables .14.Which one of the following SAS programs creates a variable named City with a value of Chicago ?a. data work.airports;AirportCode='ord';if AirportCode='ORD' City='Chicago';run;b.data work.airports; AirportCode='ORD';if AirportCode='ORD' City='Chicago';run;c.data work.airports; AirportCode='ORD';if AirportCode='ORD' then City='Chicago';run;d.data work.airports; AirportCode='ORD';if AirportCode='ORD';then City='Chicago';run;Correct answer: cThe correct syntax for an IF-THEN statement is: IF expression THEN statement ; In this example, the variable City is assigned a value of Chicago only if the expression AirportCode='ORD' is true.SAS 认证考试样题SAS 中文论坛网站You can learn about IF-THEN statements in Creating and Managing Variables .15.The following SAS program is submitted:data work.building;code='DAL523';code='SANFRAN604';code='HOUS731';length code $ 20;run;Which one of the following is the length of the code variable?a. 6b. 7c. 10d. 20Correct answer: a The DATA step first goes through a compilation phase, then an execution phase. The length of a variable is set during the compilation phase and is based on the first time the variable is encountered. In this case, the variable code is set to the length of the text string DAL523 which is 6 characters long. The next assignment statements are ignored during compilation. The LENGTH statement is also ignored since the length has already been established, but a note will be written to the log.You can learn about•the compilation phase of the DATA step in Understanding DATA StepProcessing• the LENGTH statement in Creating and Managing Variables .16. Which of the following statements creates a numeric variable named IDnumber with a value of 4198?a. IDnumber=4198;b. IDnumber='4198';c. length IDnumber=8;d. length IDnumber $ 8;Correct answer: aThe first reference to the SAS variable in the DATA step sets the name, type, and length of the variable in the program data vector (PDV) and in the output SAS data set. The assignment statement IDnumber=4198; is the first reference and creates a numeric variable named IDnumber with a default storage length of 8 bytes.You can learn about• creating variables in the DATA step in Understanding DATA Step ProcessingSAS 认证考试样题SAS 中文论坛网站• numeric variables in Basic Concepts .17. The following program is submitted:data fltaten;input jobcode $ salary name $;cards;FLAT1 70000 BobFLAT2 60000 JoeFLAT3 30000 Ann;run;data desc;set fltaten;if salary>60000 then description='Over 60';else description='Under 60';run;What is value of the variable named description when the value for salary is 30000? a.Under 6 b.Under 60 c.Over 60 d. ' ' (missing character value)Correct answer: aThe variable description is being created by the IF-THEN/ELSE statement during compilation. The first occurrence of the variable description is on the IF statement, and since it is assigned the value Over 60, the length of the variable is 7. Therefore, for the salary value of 30000, description has the value of Under 6 (the 0 is truncated.) You can learn about•the compilation phase of the DATA step in Understanding DATA StepProcessing• IF-THEN/ELSE statements in Creating and Managing Variables .18. A raw data file is listed below.1---+----10---+----20---+---10232015The following program is submitted:data all_sales;infile 'file-specification';input receipts;<insert statement(s) here>run;SAS 认证考试样题SAS 中文论坛网站Which statement(s) complete(s) the program and produce(s) a running total of the Receipts variable?a. total+receipts;b.total 0; sum total;c. total=total+receipts;d. total=sum(total,receipts);Correct answer: aThe SUM function and the assignment statement do not retain values across iterations of the DATA step. The sum statement total+receipts; initializes total to 0, ignores missing values of receipt , retains the value of total from one iteration to the next, and adds the value of receipts to total .You can learn about the sum statement in Creating and Managing Variables .19.A raw data file is listed below.1---+----10---+----20---+---1901 21905 11910 61925 11941 1The following SAS program is submitted and references the raw data file above: data money;infile 'file-specification';input year quantity;total=total+quantity;run;What is the value of total when the data step finishes executing?a.0 b.1 c.11 d. . (missing numeric value)Correct answer: dThe variable Total is assigned a missing value during the compilation phase of the DATA step. When the first record is read in, SAS processes: total=.+2; which results in a missing value. Therefore the variable Total remains missing for all observations. You can learn about• the compilation phase of the DATA step in Understanding DATA StepProcessingSAS 认证考试样题SAS 中文论坛网站• using missing values with arithmetic operators in Creating SAS Data Sets fromRaw Data .20.The following program is submitted:data test;average=mean(6,4,.,2);run;What is the value of average ?a.0 b.3 c.4 d. . (missing numeric value)Correct answer: cThe MEAN function adds all of the non-missing values and divides by the number of non-missing values. In this case, 6 + 4 + 2 divided by 3 is 4.You can learn about the MEAN function in Transforming Data with SAS Functions .21.The following SAS program is submitted:data work.AreaCodes;Phonenumber=3125551212;Code='('!!substr(Phonenumber,1,3)!!')';run;Which one of the following is the value of the variable Code in the output data set? a. ( 3)b. (312)c. 3d. 312Correct answer: aAn automatic data conversion is performed whenever a numeric variable is used where SAS expects a character value. The numeric variable is written with the BEST12. format and the resulting character value is right-aligned when the conversion occurs. In this example, the value of Phonenumber is converted to character and right-aligned before the SUBSTR function is performed. Since there are only 10 digits in the value ofPhonenumber , the right-aligned value begins with two blanks. Therefore the SUBSTR function picks up two blanks and a 3, and uses the BEST12. format to assign that value to Code . Then, the parentheses are concatenated before and after the two blanks and a 3. You can learn about automatic data conversion and the SUBSTR function inTransforming Data with SAS Functions .22.The following SAS program is submitted:data work.inventory;products=7;SAS 认证考试样题SAS 中文论坛网站do until (products gt 6);products+1;end;run;Which one of the following is the value of the variable products in the output data set? a. 5b. 6c. 7d. 8Correct answer: dA DO UNTIL loop always executes at least once because the condition is not evaluated until the bottom of the loop. In the SAS program above, the value of Products isincremented from 7 to 8 on the first iteration of the DO UNTIL loop, before the condition is checked. Therefore the value of Products is 8.You can learn about DO UNTIL loops in Generating Data with DO Loops .23.The following program is submitted:data work.test;set work.staff (keep=salary1 salary2 salary3);<insert ARRAY statement here>run;Which ARRAY statement completes the program and creates new variables?a. array salary{3};b. array new_salary{3};c. array salary{3} salary1-salary3;d. array new_salary{3} salary1-salary3;Correct answer: bAlthough each of the ARRAY statements listed above is a valid statement, only AnswerB creates new variables named new_salary1, new_salary2 and new_salary3. AnswerC and AnswerD both create an array that groups the existing data set variables salary1, salary2, and salary3. Since the array in Answer A is named salary , it also uses the existing data set variables.You can learn about creating new variables in an ARRAY statement in Processing Variables with Arrays .24.Which of the following permanently associates a format with a variable?a. the FORMAT procedureb. a FORMAT statement in a DATA stepc. an INPUT function with format modifiersd. an INPUT statement with formatted style inputCorrect answer: bSAS 认证考试样题SAS 中文论坛网站To permanently associate a format with a variable, you use the FORMAT statement in a DATA step. You can use the FORMAT procedure to create a user-defined format. You use the INPUT function to convert character data values to numeric values with an informat. You use the INPUT statement to read data into a data set with an informat. You can learn about•permanently assigning a format to a variable in Creating and Managing Variables •the FORMAT statement in Creating List Reports •the FORMAT procedure in Creating and Applying User-Defined Formats •the INPUT function in Transforming Data with SAS Functions • the INPUT statement in Reading Raw Data in Fixed Fields .25.The following report is generated:Styleof homesn A skingPriceCONDO 4 $99,313RANCH 4 $68,575SPLIT3 $77,983 TWOSTORY4 $83,825Which of the following steps created the report?a. proc freq data=sasuser.houses;tables style price /nocum;format price dollar10.;label style="Style of homes"price="Asking price";run;b.proc print data=sasuser.houses; class style;var price;table style,n price*mean*f=dollar10.;label style="Style of homes"price="Asking price";run;c.proc means data=sasuser.houses n mean; class style;var price;format price dollar10.;label style="Style of homes"price="Asking price";run;d.proc report data=sasuser.houses nowd headline; column style n price;define style / group "Style of homes";define price / mean format=dollar8."Asking price";run;SAS认证考试样题Correct answer: dThe FREQ procedure cannot create the average asking price. The CLASS statement and the VAR statement are not valid for use with the PRINT procedure. The MEANS procedure output would have both the N statistic and the N Obs statistic since a CLASS statement is used. The REPORT procedure produced the report.You can learn about•the FREQ procedure in Producing Descriptive Statistics•the PRINT procedure in Creating List Reports•the MEANS procedure in Producing Descriptive Statistics•the REPORT procedure in Creating Enhanced List and Summary Reports. 26.A SAS report currently flows over two pages because it is too long to fit within the specified display dimension. Which one of the following actions would change the display dimension so that the report fits on one page?a.Increase the value of the LINENO option.b.Decrease the value of the PAGENO option.c.Decrease the value of the LINESIZE option.d.Increase the value of the PAGESIZE option.Correct answer: dThe PAGESIZE= SAS system option controls the number of lines that compose a page of SAS procedure output. By increasing the number of lines available per page, the report might fit on one page.You can learn about the PAGESIZE= option in Referencing Files and Setting Options.27.Which one of the following SAS REPORT procedure options controls how column headings are displayed over multiple lines?a. SPACE=b. SPLIT=c. LABEL=d. BREAK=Correct answer: bThe SPLIT= option specifies how to split column headings. The SPACE=, LABEL= and BREAK= options are not valid options in PROC REPORT.You can learn about the SPLIT= option for the REPORT procedure in Creating Enhanced List and Summary Reports.SAS中文论坛网站SAS认证考试样题28.The following SAS program is submitted:ods html file='newfile.html';proc print data=sasuser.houses;run;proc means data=sasuser.houses;run;proc freq data=sasuser.shoes;run;ods html close;proc print data=sasuser.shoes;run;How many HTML files are created?a. 1b. 2c. 3d. 4Correct answer: aBy default, one HTML file is created for each FILE= option or BODY= option in the ODS HTML statement. The ODS HTML CLOSE statement closes the open HTML file and ends the output capture. The Newfile.html file contains the output from the PRINT, MEANS, and FREQ procedures.You can learn about the ODS HTML statement in Producing HTML Output.29.A frequency report of the variable Jobcode in the Work.Actors data set is listed below.Jobcode Frequency Percent CumulativeFrequency CumulativePercentActor I233.33233.33Actor II233.33466.67Actor III233.336100.00Frequency Missing = 1The following SAS program is submitted:data work.joblevels;set work.actors;if jobcode in ('Actor I', 'Actor II') thenjoblevel='Beginner';if jobcode='Actor III' thenjoblevel='Advanced';else joblevel='Unknown';run;Which of the following represents the possible values for the variable joblevel in the Work.Joblevels data set?a.Advanced and Unknown onlySAS中文论坛网站SAS 认证考试样题SAS 中文论坛网站b. Beginner and Advanced onlyc. Beginner , Advanced , and Unknownd. ' ' (missing character value)Correct answer: aThe DATA step will continue to process those observations that satisfy the condition in the first IF statement Although Joblevel might be set to Beginner for one or more observations, the condition on the second IF statement will evaluate as false, and the ELSE statement will execute and overwrite the value of Joblevel as Unknown .You can learn about•the IF statement in Creating SAS Data Sets from Raw Data • the ELSE statement in Creating and Managing Variables .30.The descriptor and data portions of the Work.Salaries data set are shown below. Variable Type Len Posname Char 8 0salary Char 8 16status Char 8 8name status salary Liz S 15,600 Herman S 26,700 Marty S 35,000The following SAS program is submitted:proc print data=work.salaries;where salary<20000;run;What is displayed in the SAS log after the program is executed?a. A NOTE indicating that 1 observation is read.b. A NOTE indicating that 0 observations were read.c. A WARNING indicating that character values have been converted to numeric values.d. An ERROR indicating that the WHERE clause operator requires compatible variables. Correct answer: dSalary is defined as a character variable. Therefore, the value in the WHERE statement must be the character value 20,000 enclosed in quotation marks.You can learn about the WHERE statement in Creating List Reports .31.Which of the following statements is true when SAS encounters a syntax error in a DATA step?SAS 认证考试样题SAS 中文论坛网站a. The SAS log contains an explanation of the error.b. The DATA step continues to execute and the resulting data set is complete.c. The DATA step stops executing at the point of the error and the resulting data set contains observations up to that point.d. A note appears in the SAS log indicating that the incorrect statement was saved to a SAS data set for further examination.Correct answer: aSAS scans the DATA step for syntax errors during the compilation phase. If there are syntax errors, those errors get written to the log. Most syntax errors prevent further processing of the DATA step.You can learn about how SAS handles syntax errors in the DATA step in Understanding DATA Step Processing .32.Which TITLE statement would display JANE'S DOG as the text of the title?a. title "JANE"S DOG";b. title 'JANE"S DOG';c. title "JANE'S DOG";d. title 'JANE' ' 'S DOG';Correct answer: cThe title in a TITLE statement must be enclosed in a pair of matched quotation marks. Unbalanced quotation marks can cause problems for SAS. To hide an unmatched single quotation mark, surround the title text with matched double quotation marks.You can learn about•the TITLE statement in Creating List Reports • unbalanced quotation marks in Editing and Debugging SAS Programs .33.The following SAS program is submitted:data test;input animal1 $ animal2 $mlgrams1 mlgrams2;cards;hummingbird ostrich 54000.39 90800000.87;run;Which one of the following represents the values of each variable in the output data set?a. animal1 animal2 mlgrams1 mlgrams2 hummingb ostrich 54000.39 90800000b. animal1 animal2 mlgrams1 mlgrams2 hummingb ostrich 54000.39 90800000.87c. animal1 animal2 mlgrams1 mlgrams2 hummingbird ostrich 54000.39 90800000d. animal1 animal2 mlgrams1 mlgrams2。
SAS学习笔记——Win7 64位下安装SAS9

/300647863.html
3/7
2014/11/2
SAS学习笔记——Win7 64位下安装SAS9.3 64位 -千城的成长记录-搜狐博客 *PRODNUM645 = DFFEDSAS SAS Framework Data Server; *PRODNUM646 = DFSCRFEDSAS DataFlux Secure; *PRODNUM678 = AMOEXCEL SAS Add-in for Microsoft Excel; *LICENSE=SAS 000061115869; *SITEID=564803; *0057240018 9.3; *XYZ 564803; $_Stream=--------------------- END --------------------$_Filename=tletter.txt $_Path=.\ $_Date= $_Time= $_Stream=-------------------- BEGIN -------------------Microsoft Windows Workstation for x64 Base SAS 31DEC2013 Education Analytical Suite 31DEC2013 SAS Bridge for ESRI 31DEC2013 SAS Enterprise Guide 31DEC2013 SAS Enterprise Miner for Desktop 31DEC2013 SAS Integration Technologies 31DEC2013 SAS OLAP Server 31DEC2013 SAS/ACCESS Interface to Aster nCluster 31DEC2013 SAS/ACCESS Interface to DB2 31DEC2013 SAS/ACCESS Interface to Greenplum 31DEC2013 SAS/ACCESS Interface to MySQL 31DEC2013 SAS/ACCESS Interface to Netezza 31DEC2013 SAS/ACCESS Interface to ODBC 31DEC2013 SAS/ACCESS Interface to OLE DB 31DEC2013 SAS/ACCESS Interface to Oracle 31DEC2013 SAS/ACCESS Interface to PC Files 31DEC2013 SAS/ACCESS Interface to Sybase 31DEC2013 SAS/ACCESS Interface to Sybase IQ 31DEC2013 SAS/ACCESS Interface to Teradata 31DEC2013 SAS/AF 31DEC2013 SAS/ASSIST 31DEC2013 SAS/CONNECT 31DEC2013 SAS/EIS 31DEC2013 SAS/ETS 31DEC2013 SAS/FSP 31DEC2013
SAS数据分析教程说明书

About the T utorialSAS is a leader in business analytics. Through innovative analytics, it caters to business intelligence and data management software and services. SAS transforms data into insight which can give a fresh perspective to business.Unlike other BI tools available in the market, SAS takes an extensive programming approach to data transformation and analysis rather than a drag-drop-connect approach. This makes it stand out from the crowd with enhanced control over data manipulation. SAS has a very large number of components customized for specific industries and data analysis tasks.AudienceThis tutorial is designed for all those readers who want to read and transform raw data to produce insights for business using SAS. Readers who aspire to become Data Analysts or Data Scientists can also draw benefits from this tutorial.PrerequisitesBefore proceeding with this tutorial, you should have a basic understanding of Computer Programming terminologies. A basic understanding of any of the programming languages will help you understand the SAS programming concepts. Familiarity with SQL will be an added benefit.Disclaimer & CopyrightCopyright 2016 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or inthistutorial,******************************************.T able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Disclaimer & Copyright (i)Table of Contents (ii)1.SAS – Overview (1)Uses of SAS (1)Types of SAS Software (3)Libraries in SAS (4)2.SAS – Environment (5)Download SAS University Edition (5)The SAS Environment (14)3.SAS – User Interface (15)SAS Main Window (15)Code Autocomplete (16)Program Execution (16)Program Log (17)Program Result (17)Program Tabs (18)4.SAS – Program Structure (22)SAS Program Structure (22)DATA Step (22)PROC Step (23)The OUTPUT Step (23)The Complete SAS Program (24)Program Output (24)5.SAS – Basic Syntax (26)SAS Statements (26)SAS Variable Names (26)SAS Data Set (27)SAS File Extensions (27)Comments in SAS (28)6.SAS – Data Sets (29)SAS Built-In Data Sets (29)Importing External Data Sets (31)7.SAS – Variables (35)SAS Variable Types (35)Use of Variables in SAS Program (36)Using the Variables (37)8.SAS – Strings (39)Declaring String Variables (39)String Functions (40)Accessing Array Values (44)Using the OF operator (44)Using the IN operator (45)10.SAS – Numeric Formats (47)Reading Numeric formats (47)Displaying Numeric formats (48)11.SAS – Operators (50)Arithmetic Operators (50)Logical Operators (51)Comparison Operators (52)Minimum/Maximum Operators (53)Concatenation Operator (54)Operators Precedence (55)12.SAS – Loops (56)Flow Diagram (56)SAS – DO Index Loop (57)SAS – DO WHILE Loop (58)SAS – DO UNTIL Loop (59)13.SAS – Decision Making (60)SAS – IF Statement (61)SAS − IF THEN ELSE Statement (63)SAS − IF THEN ELSE IF Statement (65)SAS − IF-THEN-DELETE Statement (66)14.SAS − Functions (68)Function Categories (68)Mathematical Functions (68)Date and Time Functions (69)Character Functions (70)Truncation Functions (71)Miscellaneous Functions (72)15.SAS − Input Methods (74)List Input Method (74)Named Input Method (75)Column Input Method (76)Formatted Input Method (77)16.SAS – Macros (79)Macro Variables (79)Local Macro Variable (80)Macro Programs (81)Commonly Used Macros (82)Macro % RETURN (83)Macro % END (84)SAS Date Informat (86)SAS Date output format (87)SAS DATA SET OPERATIONS (88)18.SAS − Read Raw Data (89)Reading ASCII (Text) Data Set (89)Reading Delimited Data (90)Reading Excel Data (91)Reading Hierarchical Files (92)19.SAS − Write Data Sets (94)PROC EXPORT (94)Writing a CSV file (95)Writing a Tab Delimited File (96)20.SAS − Concatenate Data Sets (97)21.SAS − Merge Data Sets (103)Data Merging (103)22.SAS − Subsetting Data Sets (107)Subsetting Variables (107)Subsetting Observations (109)23.SAS − Sort Data Sets (111)Reverse Sorting (112)Sorting Multiple Variables (113)24.SAS − Format Data Sets (115)Using PROC FORMAT (116)25.SAS − SQL (118)SQL Create Operation (118)SQL Read Operation (119)SQL SELECT with WHERE Clause (120)SQL UPDATE Operation (121)SQL DELETE Operation (123)26.SAS − ODS (124)Creating HTML Output (124)Creating PDF Output (126)Creating TRF(Word) Output (127)27.SAS − Simulations (129)SAS DATA REPRESENTATION (130)28.SAS − Histograms (131)Simple Histogram (131)Histogram with Curve Fitting (132)29.SAS − Bar Charts (134)Simple Bar chart (134)Stacked Bar chart (135)Clustered Bar chart (136)30.SAS − Pie Charts (138)Simple Pie Chart (138)Pie Chart with Data Labels (140)Grouped Pie Chart (142)31.SAS − Scatter Plots (144)Simple Scatterplot (144)Scatterplot with Prediction (145)Scatter Matrix (147)32.SAS − Boxplots (148)Simple Boxplot (148)Boxplot in Vertical Panels (150)Boxplot in Horizontal Panels (150)SAS BASIC STATISTICAL PROCEDURE (152)33.SAS ─ Arithmetic Mean (153)Mean of a Dataset (153)Mean of Select Variables (154)Mean by Class (155)34.SAS ─ Standard Deviation (156)Using PROC MEANS (156)Using PROC SURVEYMEANS (157)Using BY Option (159)35.SAS ─ Frequency Distributions (161)Single Variable Frequency Distribution (161)Multiple Variable Frequency Distribution (163)Frequency Distribution with Weight (164)36.SAS ─ Cross Tabulations (165)Cross Tabulation of 3 Variables (166)Cross Tabulation of 4 Variables (167)37.SAS ─ T-tests (169)Paired T-test (170)Two Sample T-test (172)38.SAS ─ Correlation Analysis (173)Correlation Between All Variables (175)Correlation Matrix (176)39.SAS ─ Linear Regression (177)40.SAS ─ Bland-Altman Analysis (180)Enhanced Model (182)41.SAS ─ Chi-Square (184)Two-Way Chi-Square (186)42.SAS ─ Fisher's Exact Tests (188)Applying Fisher Exact Test (188)43.SAS ─ Repeated Measure Analysis (190)44.SAS — One Way Anova (193)Applying ANOVA (193)Applying ANOVA with MEANS (194)45.SAS ─ Hypothesis Testing (196)1.SASSAS stands for Statistical Analysis Software. It was created in the year 1960 by the SAS Institute. From 1st January 1960, SAS was used for data management, business intelligence, Predictive Analysis, Descriptive and Prescriptive Analysis etc. Since then, many new statistical procedures and components were introduced in the software.With the introduction of JMP (Jump) for statistics, SAS took advantage of the graphical user interface (GUI) which was introduced by the Macintosh. Jump is basically used for applications like Six Sigma, designs, quality control and engineering and scientific analysis. SAS is platform independent which means you can run SAS on any operating system either Linux or Windows. SAS is driven by SAS programmers who use several sequences of operations on the SAS datasets to make proper reports for data analysis.Over the years SAS has added numerous solutions to its product portfolio. It has solution for Data Governance, Data Quality, Big Data Analytics, Text Mining, Fraud management, Health science etc. We can say that SAS has a solution for every business domain.To have a glance at the list of products available you can visit SAS Components. Uses of SASSAS is basically worked on large datasets. With the help of SAS software, you can perform various operations on data. Some of the operations include:∙Data management∙Statistical analysis∙Report formation with perfect graphics∙Business planning∙Operations research and project management∙Quality improvement∙Application development∙Data extraction∙Data transformation∙Data updation and modificationIf we talk about the components of SAS, then more than 200 components are available in SAS.T ypes of SAS SoftwareLet us now understand the different types of SAS software.∙Windows or PC SAS∙SAS EG (Enterprise Guide)∙SAS EM (Enterprise Miner i.e. for Predictive Analysis)∙SAS Means∙SAS StatsWe use Windows SAS in large organizations and also in training institutes. A few organizations also use Linux but there is no graphical user interface so you have to write code for every query. In Window SAS, there are a lot of utilities available that help the programmers and also reduce the time of writing the codes.A SaS Window has 5 parts.SASLibraries in SASLibraries are storage locations in SAS. You can create a library and save all the similar programs in that library. SAS provides you the facility to create multiple libraries. A SAS library is only 8 characters long.There are two types of libraries available in SAS:2.SASSAS Institute Inc. has released a free SAS University Edition. This provides a platform for learning SAS programming. It provides all the features that you need to learn in BASE SAS programming which in turn enables you to learn any other SAS component.The process of downloading and installing SAS University Edition is very simple. It is available as a virtual machine which needs to be run on a virtual environment. You need to have virtualization software already installed in your PC before you can run the SAS software. In this tutorial, we will be using VMware. The following are the details of the steps to download, setup the SAS environment and verify the installation.Download SAS University EditionSAS University Edition is available for download at the URL SAS University Edition. Please scroll down to read the system requirements before you begin the download. The following screen appears on visiting this URL.Setup virtualization softwareScroll down on the same page to locate the installation step 1. This step provides the links to get the suitable virtualization software. In case you already have any one of these software installed in your system, you can skip this step.Quick start virtualization softwareIn case you are completely new to the virtualization environment, you can familiarize yourself with it by going through the following guides and videos available as step 2. You can skip this step in case you are already familiar.Download the Zip fileIn step 3, you can choose the appropriate version of the SAS University Edition compatible with the virtualization environment you have. It downloads as a zip file with the name similar to unvbasicvapp__9411005__vmx__en__sp0__1.zipUnzip the Zip fileThe zip file above needs to be unzipped and stored in an appropriate directory. In our case, we have chosen the VMware zip file which shows the following files after unzipping.Start the VMware player (or workstation) and open the file which ends with an extension. vmx. The following screen appears. Please notice the basic settings like memory and hard disk space allocated to the vm.Click the Power on this virtual machine alongside the green arrow mark to start the virtual machine. The following screen appears.The following screen appears when the SAS vm is in the state of loading after which the running vm gives a prompt to go to a URL location that will open the SAS environment.Starting SAS studioOpen a new browser tab and load the above URL (which differs from one PC to another). The following screen appears indicating the SAS environment is ready.SASThe SAS EnvironmentOn clicking the Start SAS Studio, we get the SAS environment which by default opens in the visual programmer mode as shown in the following screenshot.We can also change it to the SAS programmer mode by clicking on the dropdown.We are now ready to write the SAS Programs.3.SASSAS Programs are created using a user interface known as SAS Studio. In this chapter, we will discuss the various windows of SAS User Interface and their usage.SAS Main WindowThis is the window you see on entering the SAS environment. The Navigation Pane is to the left. It is used to navigate various programming features. The Work Area is to the right. It is used for writing the code and executing it.Code AutocompleteThis feature helps in getting the correct syntax of the SAS keywords and also provides link to the documentation for the keywords.Program ExecutionThe execution of code is done by pressing the run icon, which is the first icon from left or the F3 button.Program LogThe log of the executed code is available under the Log tab. It describes the errors, warnings or notes about the program’s execution. This is the window where you get all the clues to troubleshoot your code.Program ResultThe result of the code execution is seen in the RESULTS tab. By default, they are formatted as html tables.End of ebook previewIf you liked what you saw…Buy it from our store @ https://。
数据分析(SAS描述性统计分析过程)

均值的标准误差
加权和 标准偏差 方差
最小值
极差,max—min 中间值 总体均值等于0的t统计量
变异系数的百分数
加权平方和 关于均值偏差的加权平方和 对称性的度量——偏度 对尾部陡平的度量——峰度
t分布的双尾p值
置信度上限和下限 置信度下限 置信度上限
proc means(4)
output语句中的选项。 <out=输出数据集名>——输出数据集 名。 统计量关键字=变量名列表——规定在 输出数据集中要包含的统计量并规定这 些统计量在新数据集中的变量名。 means过程对output语句的次数没有 限制,可以使用几个output语句来创建 内容不同的多个数据集。
教材1.2例题 examp1_4(SAS程序)
data examp1_4; input x @@; cards; 74.3 78.8 68.8 78.0 70.4 80.5 80.5 69.7 71.2 73.5 79.5 75.6 75.0 78.8 72.0 72.0 72.0 74.3 71.2 72.0 75.0 73.5 78.8 74.3 75.8 65.0 74.3 71.2 69.7 68.0 73.5 75.0 72.0 64.3 75.8 80.3 69.7 74.3 73.5 73.5 75.8 75.8 68.8 76.5 70.4 71.2 81.2 75.0 70.4 68.0 70.4 72.0 76.5 74.3 76.5 77.6 67.3 72.0 75.0 74.3 73.5 79.5 73.5 74.7 65.0 76.5 81.6 75.4 72.7 72.7 67.2 76.5 72.7 70.4 77.2 68.8 67.3 67.3 67.3 72.7 75.8 73.5 75.0 72.7 73.5 73.5 72.7 81.6 70.3 74.3 73.5 79.5 70.4 76.5 72.7 77.2 84.3 75.0 76.5 70.4 ; proc capability data=examp1_4; histogram x / normal(mu=est sigma=est); cdfplot / normal(mu=est sigma=est); qqplot x / normal(mu=est sigma=est); run;
SAS Foundation 9.4安装快速指南说明书

Quick guide for SAS® Foundation 9.4 Installation1.Before you begin installing the SAS software, ensure that there are no antivirus or firewall servicesrunning on the machine. Check Windows Services by doing the following:Select Start ► Run and type services.msc. For Windows 7, type services.msc in the Search programs and files search box.Look for any antivirus software that is in a started state. Stop the services by clicking Stop in the upper left corner.Some of the antivirus software programs that you might see under the Services window include but are not limited to Norton, Symantec, McAfee, Trend, Microsoft, VIPRE, Kaspersky, and AVG.Here is an example of what you might see in the Services window. Note that there is usually one antivirus service that you are unable to stop. That is fine. The problem is if you cannot stop any of the services. In that case, contact your IT department to stop these for you while you are performing the installation. Alternatively, have an Administrator log on and do the installation for you.2.SAS Deployment Wizard manages the SAS Foundation Deployment.To start, Browse to your SAS depot folder and Right click on setup.exe. Then click on “Run asadministrator”.3.Select your preferred language for the SAS Deployment Wizard.4.Select Deployment Task — Select Install SAS Software. Click Next.5.If prompted, Select the correct SAS order.. Click Next. Otherwise, Specify SAS Home — Choose a filesystem location for the home folder for your SAS software. This will default to C:\ProgramFiles\SASHome. You can use the Browse button to navigate to an alternate location for your SAS Home. Click Next.6.Select Deployment Type — Select Install SAS Foundation and Related Software. Click Next.7.Select Products to install — Click on Clear All. Then select both SAS Enterprise Guide and SASFoundation. Click Next.**Note: It is recommended to tick SAS PC-Files sever if you are installing on 64bit windows for enhanced access to Microsoft Windows-specific data files, such as Microsoft Excel andMicrosoft Access.8.Select SAS Foundation Products — The defaults that are selected are all of the SAS Foundationproducts in your order. Generally, you will want all of the products in your order. Click Next.9.Specify SAS Installation Data File — This is the path to your SID file. By default, the SID file islocated in the sid_files folder of your SAS Software Depot. If necessary, click Browse to navigate to this file. Click Browse.10.Select Language Support — Select the languages that you want to install for the products that arelisted. Only those languages that work with your locale are installed. Click Next.**Clicking on “Clear all” will only leave English ticked.11.Select Regional Settings. — Select the Locale. For ex: English (Australia) [en_AU]. Click Next.12.Select the default product for SAS file Types. Click Next.** The default selection is SAS Foundation.13.Checking System — The SAS Deployment Wizard checks to ensure that the system has enough diskspace and the files and folders that it will write are accessible. The installation cannot proceed until access is granted for any listed files. When the examination is complete, click Next.14.Deployment Summary — Click on start to begin the installation.15.Deployment Complete — Check all stages for errors or warnings. Click Next.16.Select support Option — Select to send an electronic record to SAS if you wish. Click Next.17.Additional Resources — Record these links for future reference. Click Finish.If you have any technical issues, You can contact SAS Australia Technical support through the channels below.CONTACT INFORMATION•/ctx/supportform/createForm•**************.com•AustraliaPhone: +61-2 9428 0444Fax: +61-2 9418 72998.30am to 5.30pm (EST)BE PREPARED!Please provide us with the following:•Site Number•Operating System•Current Software Release•Full details of any error message and SAS log.。
SAS认证220道_练习题及详细答案(10-9)

SAS Certificate Base Practice Questions and Detailed Answers Chapter 1: Basic ConceptsChapter 2: Referencing Files and Setting OptionsChapter 3: Editing and Debugging SAS ProgramsChapter 4: Creating List ReportsChapter 5: Creating SAS Data Sets from Raw DataChapter 6: Understanding DATA Step ProcessingChapter 7: Creating and Applying User-Defined FormatsChapter 8: Creating Enhanced List and Summary ReportsChapter 9: Producing Descriptive StatisticsChapter 10: Producing HTML OutputChapter 11: Creating and Managing VariablesChapter 12: Reading SAS Data SetsChapter 13: Combining SAS Data SetsChapter 14: Transforming Data with SAS FunctionsChapter 15: Generating Data with DO LoopsChapter 16: Processing Variables with ArraysChapter 17: Reading Raw Data in Fixed FieldsChapter 18: Reading Free-Format DataChapter 19: Reading Date and Time ValuesChapter 20: Creating a Single Observation from Multiple RecordsChapter 21: Creating Multiple Observations from a Single RecordChapter 22: Reading Hierarchical FilesChapter 1: Basic Concepts Answer Key1.How many observations and variables does the data set below contain?a. 3 observations, 4 variablesb. 3 observations, 3 variablesc. 4 observations, 3 variablesd.can't tell because some values are missingCorrect answer:cRows in the data set are called observations, and columns are called variables. Missing values don't affect the structure of the data set.2.How many program steps are executed when the program below is processed?data user.tables;infile jobs;input date name $ job $;run;proc sort data=user.tables;by name;run;proc print data=user.tables;run;a.threeb.fourc.fived.sixCorrect answer:aWhen it encounters a DATA, PROC, or RUN statement, SAS stops reading statements andexecutes the previous step in the program. The program above contains one DATA step and two PROC steps, for a total of three program steps.3.What type of variable is the variable AcctNum in the data set below?a.numericb.characterc.can be either character or numericd.can't tell from the data shownCorrect answer:bIt must be a character variable, because the values contain letters and underscores, which are not valid characters for numeric values.4.What type of variable is the variable Wear in the data set below?a.numericb.characterc.can be either character or numericd.can't tell from the data shownCorrect answer:aIt must be a numeric variable, because the missing value is indicated by a period rather than by a blank.5.Which of the following variable names is valid?a.4BirthDateb.$Costc._Items_d.Tax-RateCorrect answer:cVariable names follow the same rules as SAS data set names. They can be 1 to 32 characters long, must begin with a letter (A–Z, either uppercase or lowercase) or an underscore, and can continue with any combination of numbers, letters, or underscores.6.Which of the following files is a permanent SAS file?a.Sashelp.PrdSaleb.Sasuser.MySalesc.Profits.Quarter1d.all of the aboveCorrect answer:dTo store a file permanently in a SAS data library, you assign it a libref other than the default Work. For example, by assigning the libref Profits to a SAS data library, you specify that files within the library are to be stored until you delete them. Therefore, SAS files in the Sashelp and Sasuser libraries are permanent files.7.In a DATA step, how can you reference a temporary SAS data set named Forecast?a.Forecastb.Work.Forecastc.Sales.Forecast (after assigning the libref Sales)d.only a and b aboveCorrect answer:dTo reference a temporary SAS file in a DATA step or PROC step, you can specify the one-level name of the file (for example, Forecast) or the two-level name using the libref Work (for example, Work.Forecast).8.What is the default length for the numeric variable Balance?a. 5b. 6c.7d.8Correct answer:dThe numeric variable Balance has a default length of 8. Numeric values (no matter how many digits they contain) are stored in 8 bytes of storage unless you specify a different length.9.How many statements does the following SAS program contain?proc print data=new.prodsalelabel double;var state day price1 price2; where state='NC';label state='Name of State';run;a.threeb.fourc.fived.sixCorrect answer:cThe five statements are•PROC PRINT statement (two lines long)•VAR statement•WHERE statement (on the same line as the VAR statement)•LABEL statement•RUN statement (on the same line as the LABEL statement).10.What is a SAS data library?a. a collection of SAS files, such as SAS data sets and catalogsb.in some operating environments, a physical collection of SAS filesc.in some operating environments, a logically related collection of SAS filesd.all of the aboveCorrect answer:dEvery SAS file is stored in a SAS data library, which is a collection of SAS files, such as SAS data sets and catalogs. In some operating environments, a SAS data library is a physical collection of files. In others, the files are only logically related. In the Windows and UNIX environments, a SAS data library is typically a group of SAS files in the same folder or directory.Chapter 2: Referencing Files and Setting Options1.If you submit the following program, how does the output look?options pagesize=55 nonumber;proc tabulate data=clinic.admit;class actlevel;var age height weight;table actlevel,(age height weight)*mean;run;options linesize=80;proc means data=clinic.heart min max maxdec=1;var arterial heart cardiac urinary;class survive sex;run;a.The PROC MEANS output has a print line width of 80 characters, but the PROCTABULATE output has no print line width.b.The PROC TABULATE output has no page numbers, but the PROC MEANS outputhas page numbers.c.Each page of output from both PROC steps is 55 lines long and has no page numbers,and the PROC MEANS output has a print line width of 80 characters.d.The date does not appear on output from either PROC step.Correct: answer:cWhen you specify a system option, it remains in effect until you change the option or end your SAS session, so both PROC steps generate output that is printed 55 lines per page with no page numbers. If you don't specify a system option, SAS uses the default value for that system option.2.In order for the date values 05May1955 and 04Mar2046 to be read correctly, what value mustthe YEARCUTOFF= option have?a. a value between 1947 and 1954, inclusiveb.1955 or higherc.1946 or higherd.any valueCorrect answer:dAs long as you specify an informat with the correct field width for reading the entire date value, the YEARCUTOFF= option doesn't affect date values that have four-digit years.3.When you specify an engine for a library, you are always specifyinga.the file format for files that are stored in the library.b.the version of SAS that you are using.c.access to other software vendors' files.d.instructions for creating temporary SAS files.Correct answer:aA SAS engine is a set of internal instructions that SAS uses for writing to and reading from files in a SAS library. Each engine specifies the file format for files that are stored in the library, which in turn enables SAS to access files with a particular format. Some engines access SAS files, and other engines support access to other vendors' files.4.Which statement prints a summary of all the files stored in the library named Area51?a.proc contents data=area51._all_ nods;b.proc contents data=area51 _all_ nods;c.proc contents data=area51 _all_ noobs;d.proc contents data=area51 _all_.nods;Correct answer:aTo print a summary of library contents with the CONTENTS procedure, use a period to append the _ALL_ option to the libref. Adding the NODS option suppresses detailed information about the files.5.The following PROC PRINT output was created immediately after PROC TABULATEoutput. Which SAS system options were specified when the report was created?a.OBS=, DATE, and NONUMBERb.PAGENO=1, and DATEc.NUMBER and DATE onlyd.none of the aboveCorrect answer:bClearly, the DATE and PAGENO= options are specified. Because the page number on the output is 1, even though PROC TABULATE output was just produced. If you don't specify PAGENO=, all output in the Output window is numbered sequentially throughout your SAS session.6.Which of the following programs correctly references a SAS data set named SalesAnalysisthat is stored in a permanent SAS library?a.data saleslibrary.salesanalysis;set mydata.quarter1sales;if sales>100000;run;b.data mysales.totals;set sales_99.salesanalysis;if totalsales>50000;run;c.proc print data=salesanalysis.quarter1;var sales salesrep month;run;d.proc freq data=1999data.salesanalysis;tables quarter*sales; run;Correct answer:bLibrefs must be 1 to 8 characters long, must begin with a letter or underscore, and can contain only letters, numbers, or underscores. After you assign a libref, you specify it as the first element in the two-level name for a SAS file.7.Which time span is used to interpret two-digit year values if the YEARCUTOFF= option isset to 1950?a.1950-2049b.1950-2050c.1949-2050d.1950-2000Correct answer:aThe YEARCUTOFF= option specifies which 100-year span is used to interpret two-digit year values. The default value of YEARCUTOFF= is 1920. However, you can override the default and change the value of YEARCUTOFF= to the first year of another 100-year span. If you specify YEARCUTOFF=1950, then the 100-year span will be from 1950 to 2049.8.Asssuming you are using SAS code and not special SAS windows, which one of thefollowing statements is false?a.LIBNAME statements can be stored with a SAS program to reference the SAS libraryautomatically when you submit the program.b.When you delete a libref, SAS no longer has access to the files in the library.However, the contents of the library still exist on your operating system.c.Librefs can last from one SAS session to another.d.You can access files that were created with other vendors' software by submitting aLIBNAME statement.Correct answer:cThe LIBNAME statement is global, which means that librefs remain in effect until you modify them, cancel them, or end your SAS session. Therefore, the LIBNAME statement assigns the libref for the current SAS session only. You must assign a libref before accessingSAS files that are stored in a permanent SAS data library.9.What does the following statement do?libname osiris spss 'c:\myfiles\sasdata\data';a.defines a library called Spss using the OSIRIS engineb.defines a library called Osiris using the SPSS enginec.defines two libraries called Osiris and Spss using the default engined.defines the default library using the OSIRIS and SPSS enginesCorrect answer:bIn the LIBNAME statement, you specify the library name before the engine name. Both are followed by the path.10.What does the following OPTIONS statement do?options pagesize=15 nodate;a.suppresses the date and limits the page size of the logb.suppresses the date and limits the vertical page size for text outputc.suppresses the date and limits the vertical page size for text and HTML outputd.suppresses the date and limits the horizontal page size for text outputCorrect answer:bThese options affect the format of listing output only. NODATE suppresses the date and PAGESIZE= determines the number of rows to print on the page.Chapter 3: Editing and Debugging SAS Programs Answer Key1.As you write and edit SAS programs it's a good idea toa.begin DATA and PROC steps in column one.b.indent statements within a step.c.begin RUN statements in column one.d.all of the aboveCorrect answer:dAlthough you can write SAS statements in almost any format, a consistent layout enhances readability and enables you to understand the program's purpose. It's a good idea to begin DATA and PROC steps in column one, to indent statements within a step, to begin RUN statements in column one, and to include a RUN statement after every DATA step or PROC step.2.What usually happens when an error is detected?a.SAS continues processing the step.b.SAS continues to process the step, and the log displays messages about the error.c.SAS stops processing the step in which the error occurred, and the log displaysmessages about the error.d.SAS stops processing the step in which the error occurred, and the program outputdisplays messages about the error.Correct answer:cSyntax errors generally cause SAS to stop processing the step in which the error occurred. When a program that contains an error is submitted, messages regarding the problem also appear in the SAS log. When a syntax error is detected, the SAS log displays the word ERROR, identifies the possible location of the error, and gives an explanation of the error.3. A syntax error occurs whena.some data values are not appropriate for the SAS statements that are specified in aprogram.b.the form of the elements in a SAS statement is correct, but the elements are not validfor that usage.c.program statements do not conform to the rules of the SAS language.d.none of the aboveCorrect canswer:Syntax errors are common types of errors. Some SAS system options, features of the Editorwindow, and the DATA step debugger can help you identify syntax errors. Other types oferrors include data errors, semantic errors, and execution-time errors.4.How can you tell whether you have specified an invalid option in a SAS program?a. A log message indicates an error in a statement that seems to be valid.b. A log message indicates that an option is not valid or not recognized.c.The message "PROC running" or "DATA step running" appears at the top of theactive window.d.You can't tell until you view the output from the program.Correct answer:bWhen you submit a SAS statement that contains an invalid option, a log message notifies you that the option is not valid or not recognized. You should recall the program, remove or replace the invalid option, check your statement syntax as needed, and resubmit the corrected program.5.Which of the following programs contains a syntax error?Correct answer:bThe DATA step contains a misspelled keyword (dat instead of data). However, this is such a common (and easily interpretable) error that SAS produces only a warning message, not an error.6.What does the following log indicate about your program?proc print data=sasuser.cargo99var origin dest cargorev;2276ERROR 22-322: Syntax error, expecting one of the following:;, (, DATA, DOUBLE, HEADING, LABEL, N, NOOBS, OBS, ROUND, ROWS, SPLIT, STYLE,UNIFORM, WIDTH.ERROR 76-322: Syntax error, statement will be ignored.11 run;a.SAS identifies a syntax error at the position of the VAR statement.b.SAS is reading VAR as an option in the PROC PRINT statement.c.SAS has stopped processing the program because of errors.d.all of the aboveCorrect answer:dBecause there is a missing semicolon at the end of the PROC PRINT statement, SAS interprets VAR as an option in PROC PRINT and finds a syntax error at that location. SAS stops processing programs when it encounters a syntax error.Chapter 4: Creating List Reports Answer Key 1.Which PROC PRINT step below creates the following output?Correct answer:cThe DATA= option specifies the data set that you are listing, and the ID statement replaces the Obs column with the specified variable. The VAR statement specifies variables and controls the order in which they appear, and the WHERE statement selects rows based on a condition. The LABEL option in the PROC PRINT statement causes the labels that are specified in the LABEL statement to be displayed.2.Which of the following PROC PRINT steps is correct if labels are not stored with thedata set?Correct aanswer:You use the DATA= option to specify the data set to be printed. The LABEL optionspecifies that variable labels appear in output instead of variable names.3.Which of the following statements selects from a data set only those observations forwhich the value of the variable Style is RANCH, SPLIT, or TWOSTORY?Correct answer:dIn the WHERE statement, the IN operator enables you to select observations based on several values. You specify values in parentheses and separate them by spaces or commas. Character values must be enclosed in quotation marks and must be in the same case as in the data set.4.If you want to sort your data and create a temporary data set named Calc to store thesorted data, which of the following steps should you submit?Correct answer:cIn a PROC SORT step, you specify the DATA= option to specify the data set to sort. The OUT= option specifies an output data set. The required BY statement specifies the variable(s) to use in sorting the data.5.Which options are used to create the following PROC PRINT output?13:27 Monday, March 22, 1999 Patient Arterial Heart Cardiac Urinary203 88 95 66 11054 83 183 95 0664 72 111 332 12210 74 97 369 0101 80 130 291 0a.the DATE system option and the LABEL option in PROC PRINTb.the DATE and NONUMBER system options and the DOUBLE and NOOBSoptions in PROC PRINTc.the DATE and NONUMBER system options and the DOUBLE option inPROC PRINTd.the DATE and NONUMBER system options and the NOOBS option in PROCPRINTCorrect answer:bThe DATE and NONUMBER system options cause the output to appear with the date but without page numbers. In the PROC PRINT step, the DOUBLE option specifies double spacing, and the NOOBS option removes the default Obs column.6.Which of the following statements can you use in a PROC PRINT step to create thisoutput?Correct answer:dYou do not need to name the variables in a VAR statement if you specify them in the SUM statement, but you can. If you choose not to name the variables in the VAR statement as well, then the SUM statement determines the order of the variables in the output.7.What happens if you submit the following program?proc sort data=clinic.diabetes;run;proc print data=clinic.diabetes;var age height weight pulse;where sex='F';run;a.The PROC PRINT step runs successfully, printing observations in their sortedorder.b.The PROC SORT step permanently sorts the input data set.c.The PROC SORT step generates errors and stops processing, but the PROCPRINT step runs successfully, printing observations in their original (unsorted)order.d.The PROC SORT step runs successfully, but the PROC PRINT step generateserrors and stops processing.Correct answer:cThe BY statement is required in PROC SORT. Without it, the PROC SORT step fails. However, the PROC PRINT step prints the original data set as requested.8.If you submit the following program, which output does it create?proc sort data=finance.loans out=work.loans;by months amount;run;proc print data=work.loans noobs; var months;sum amount payment;where months<360;run;a.b.c.d.Correct answer:aColumn totals appear at the end of the report in the same format as the values of the variables, so b is incorrect. Work.Loans is sorted by Month and Amount, so c isincorrect. The program sums both Amount and Payment, so d is incorrect.9.Choose the statement below that selects rows which•the amount is less than or equal to $5000•the account is 101-1092 or the rate equals 0.095.Correct answer:cTo ensure that the compound expression is evaluated correctly, you can use parentheses to groupaccount='101-1092' or rate eq 0.095OBS Account Amount Rate MonthsPayment1 101-1092 $22,000 10.00%60 $467.432 101-1731 $114,0009.50% 360 $958.573 101-1289 $10,000 10.50%36 $325.024 101-3144 $3,500 10.50%12 $308.525 103-1135 $8,700 10.50%24 $403.476 103-1994 $18,500 10.00%60 $393.077 103-2335 $5,000 10.50%48 $128.028 103-3864 $87,500 9.50% 360 $735.759 103-3891 $30,000 9.75% 360 $257.75For example, from the data set above, a and b above select observations 2 and 8 (those that have a rate of 0.095); c selects no observations; and d selects observations 4 and 7 (those that have an amount less than or equal to 5000).10.What does PROC PRINT display by default?a.PROC PRINT does not create a default report; you must specify the rows andcolumns to be displayed.b.PROC PRINT displays all observations and variables in the data set. If youwant an additional column for observation numbers, you can request it.c.PROC PRINT displays columns in the following order: a column forobservation numbers, all character variables, and all numeric variables.d.PROC PRINT displays all observations and variables in the data set, a columnfor observation numbers on the far left, and variables in the order in which they occur in the data set.Correct answer:dYou can remove the column for observation numbers. You can also specify the variables you want, and you can select observations according to conditions.Chapter 5: Creating SAS Data Sets from Raw Data Answer Key1.Which SAS statement associates the fileref Crime with the raw data fileC:\States\Data\Crime?a.filename crime 'c:\states\data\crime';b.filename crime c:\states\data\crime;c.fileref crime 'c:\states\data\crime';d.filename 'c:\states\data\crime' crime; Correct aanswer:Before you can read your raw data, you must reference the raw data file by creating afileref. You assign a fileref by using a FILENAME statement in the same way thatyou assign a libref by using a LIBNAME statement.2.Filerefs remain in effect untila.you change them.b.you cancel them.c.you end your SAS session.d.all of the aboveCorrect answer:dLike LIBNAME statements, FILENAME statements are global; they remain in effect until you change them, cancel them, or end your SAS session.3.Which statement identifies the name of a raw data file to be read with the filerefProducts and specifies that the DATA step read only records 1-15?a.infile products obs 15;b.infile products obs=15;c.input products obs=15;d.input products 1-15;Correct answer:bYou use an INFILE statement to specify the raw data file to be read. You can specify a fileref or an actual filename (in quotation marks). The OBS= option in the INFILE statement enables you to process only records 1 through n.4.Which of the following programs correctly writes the observations from the data setbelow to a raw data file?Correct answer:dThe keyword _NULL_ in the DATA statement enables you to use the power of the DATA step without actually creating a SAS data set. You use the FILE and PUT statements to write out the observations from a SAS data set to a raw data file. The FILE statement specifies the raw data file and the PUT statement describes the lines towrite to the raw data file. The filename and location that are specified in the FILE statement must be enclosed in quotation marks.5.Which raw data file can be read using column input?a.b.c.d.all of the aboveCorrect answer:bColumn input is appropriate only in some situations. When you use column input, your data must be standard character or numeric values, and they must be in fixed fields. That is, values for a particular variable must be in the same location in all records.6.Which program creates the output shown below?Correct answer:aThe INPUT statement creates a variable using the name that you assign to each field. Therefore, when you write an INPUT statement, you need to specify the variable names exactly as you want them to appear in the SAS data set.7.Which statement correctly reads the fields in the following order: StockNumber,Price, Item, Finish, Style?Field Name Start Column End Column Data TypeStockNumber 1 3 characterFinish 5 9 characterStyle 11 18 characterItem 20 24 characterPrice 27 32 numericCorrec t answer:bYou can use column input to read fields in any order. You must specify the variable name to be created, identify character values with a $, and name the correct starting column and ending column for each field.8.Which statement correctly re-defines the values of the variable Income as 100percent higher?a.income=income*1.00;b.income=income+(income*2.00);c.income=income*2;d.income=*2;Correct answer:cTo re-define the values of the variable Income in an Assignment statement, you specify the variable name on the left side of the equal sign and an appropriate expression including the variable name on the right side of the equal sign.9.Which program correctly reads instream data?a.data finance.newloan;input datalines;if country='JAPAN';MonthAvg=amount/12;1998 US CARS 194324.121998 US TRUCKS 142290.301998 CANADA CARS 10483.441998 CANADA TRUCKS 93543.641998 MEXICO CARS 22500.571998 MEXICO TRUCKS 10098.881998 JAPAN CARS 15066.431998 JAPAN TRUCKS 40700.34;b.data finance.newloan;input Year 1-4 Country $ 6-11Vehicle $ 13-18 Amount 20-28;if country='JAPAN';MonthAvg=amount/12;datalines;run;c.data finance.newloan;input Year 1-4 Country 6-11Vehicle 13-18 Amount 20-28;if country='JAPAN';MonthAvg=amount/12;datalines;1998 US CARS 194324.121998 US TRUCKS 142290.301998 CANADA CARS 10483.441998 CANADA TRUCKS 93543.641998 MEXICO CARS 22500.571998 MEXICO TRUCKS 10098.881998 JAPAN CARS 15066.431998 JAPAN TRUCKS 40700.34;d.data finance.newloan;input Year 1-4 Country $ 6-11Vehicle $ 13-18 Amount 20-28;if country='JAPAN';MonthAvg=amount/12;datalines;1998 US CARS 194324.121998 US TRUCKS 142290.301998 CANADA CARS 10483.441998 CANADA TRUCKS 93543.641998 MEXICO CARS 22500.571998 MEXICO TRUCKS 10098.881998 JAPAN CARS 15066.431998 JAPAN TRUCKS 40700.34;Correct answer:dTo read instream data, you specify a DATALINES statement and data lines, followed by a null statement (single semicolon) to indicate the end of the input data. Program a contains no DATALINES statement, and the INPUT statement doesn't specify the fields to read. Program b contains no data lines, and the INPUT statement in program c doesn't specify the necessary dollar signs for the character variables Country and Vehicle.10.Which SAS statement subsets the raw data shown below so that only the observationsin which Sex (in the second field) has a value of F are processed?a.if sex=f;b.if sex=F;c.if sex='F';d. a or bCorrect answer:cTo subset data, you can use a subsetting IF statement in any DATA step to process only those observations that meet a specified condition. Because Sex is a character variable, the value F must be enclosed in quotation marks and must be in the same case as in the data set.Chapter 6: Understanding DATA Step Processing Answer Key1.Which of the following is not created during the compilation phase?。
SAS9.1.3全功能版的详细安装过程说明(仅供学习参考)

SAS_9.1.3 全功能版本软件仅做学习交流使用,请勿用于商业用途,所有权归所有者。
需要注意的是,你的Windows用户名和计算机名必须是英文字母,所有的安装路径也必须为英文,否则容易出错。
安装步骤0.安装前请把系统时间调到2006年12月31日以前,安装完成后再把时间调回来;最好先暂停杀毒软件。
1.插入光盘后SAS自动进行安装,否则运行安装盘根目录的Setup.exe,语言选择简体中文。
2.点选“终端用户安装步骤”的“安装SAS软件”。
3.首先运行“系统需求向导”,可能需要重起计算机,如有开机密码则需输入开机密码。
4.如系统装有防火墙,则需要允许SAS安装程序运行和访问网络。
5.完成“系统需求向导”后,继续点击“安装SAS软件”。
6.然后会让你选择SAS的SID,这个时候选择“Crack”目录下面的SID_.txt文件即可。
(如果出现SID错误的提示,一般就是没有调整系统时间的问题,因为这个SID是2006年底的,只能用之前的时间来安装。
)7.语言默认选择简体中文,也可以追加选择英文。
8.接下来选择安装的模块,选择所有模块即可。
9.选择系统安装路径,默认安装在C盘C:\Program Files\SAS\SAS 9.1,更改C到D盘D:\Program Files\SAS\SAS 9.110.然后会逐一弹出对话框让选择其它安装盘,选择到对应目录即可,比如:SAS_Disk_1、2、3、4和SAS_Shared_components等,Setup目录就是安装盘根目录。
11.安装完成后退出,复制“Crack”目录下面的sashost.dll到Files\SAS\SAS 9.1目录下)替换原文件,完成12.安装完成后再把系统时间调回到当前时间,安装。
SAS base 50题 训练题(含答案及解析)

SAS 中文论坛网站1.A raw data file is listed below.1---+----10---+----20---+---son Frank 01/31/89daughter June 12-25-87brother Samuel 01/17/51The following program is submitted using this file as input:data work.family;infile 'file-specification';<insert INPUT statement here >run;Which INPUT statement correctly reads the values for the variable Birthdate as SAS date values?a. i nput relation $ first_name $ birthdate date9.;b.i nput relation $ first_name $ birthdate mmddyy8.; c.i nput relation $ first_name $ birthdate : date9.; d.i nput relation $ first_name $ birthdate : mmddyy8.; Correct answer: dAn informat is used to translate the calendar date to a SAS date value. The date values are in the form of two-digit values for month-day-year, so the MMDDYY8. informat must be used. When using an informat with list input, the colon-format modifier is required to correctly associate the informat with the variable name.You can learn about•informats in Reading Date and Time Values • the colon-format modifier in Reading Free-Format Data .2.A raw data file is listed below.1---+----10---+----20---+---Jose,47,210Sue,,108The following SAS program is submitted using the raw data file above as input: data employeestats;<insert INFILE statement here>input name $ age weight;run;The following output is desired:name age weight Jose 47 210 Sue . 108Which of the following INFILE statements completes the program and accesses the data correctly?a. infile 'file-specification ' pad;b. infile 'file-specification ' dsd;SAS 中文论坛网站c. infile 'file-specification ' dlm=',';d. infile 'file-specification ' missover;Correct answer: bThe PAD option specifies that SAS pad variable length records with blanks. TheMISSOVER option prevents SAS from reading past the end of the line when reading free formatted data. The DLM= option specifies the comma as the delimiter; however,consecutive delimiters are treated as one by default. The DSD option correctly reads the data with commas as delimiters and two consecutive commas indicating a missing value like those in this raw data file.You can learn about• the PAD option in Reading Raw Data in Fixed Fields•the MISSOVER option in Creating Multiple Observations from a SingleRecord• the DLM= option and the DSD option in Reading Free-Format Data . 3.The following program is submitted:data numrecords;infile cards dlm=',';input agent1 $ agent2 $ agent3 $;cards;jones,,brownjones,spencer,brown;run;What is the value for the variable named Agent2 in the second observation?a.brown b.spencer c.' ' (missing character value) d. There is no value because only one observation is created.Correct answer: dThe CARDS statement enables you to read instream data. Any number of consecutive commas are considered to be a single delimiter as a result of the DLM= option, and the length of each variable defaults to 8 bytes. Therefore, the values jones , brownjon , and spencer are assigned to Agent1, Agent2, and Agent3, respectively, for the firstobservation. The rest of the data on the record is not read by the INPUT statement and is not output to the data set.You can learn about•the CARDS statement in Creating SAS Data Sets from Raw Data • the default length of variables in Reading Free-Format Data .4.A raw data file is listed below.1---+----10---+----20---+----30---+----40---+----50TWOSTORY 1040 2 1SANDERS ROAD $55,850CONDO 2150 4 2.5JEANS AVENUE $127,150The following program is submitted using this file as input:data work.houses;infile 'file-specification';<insert INPUT statement here>run;Which one of the following INPUT statements reads the raw data file correctly?a.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street 16.@40 price dollar8;b.input @1 style $8+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street $16@40 price dollar8.;c.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3.street $16.@40 price dollar8.;d.input @1 style $8.+1 sqfeet 4.+1 bedrooms 1.@20 baths 3street 16.@40 price dollar8.;Correct answer: cFormatted input requires periods as part of the informat name. The period is missing from the variables Style and Street in Answer b, the variable Baths in Answer d, and the variable Price in Answer a (which is also missing a dollar sign to read the variable Street as a character value).You can learn about formatted input and informats in Reading Raw Data in Fixed Fields.5. The following SAS program is submitted at the start of a new SAS session:libname sasdata 'SAS-data-library';data sasdata.sales;set sasdata.salesdata;profit=expenses-revenues;run;SAS中文论坛网站SAS 中文论坛网站proc print data=sales;run;The SAS data set Sasdata.Salesdata has ten observations. Which one of the following explains why a report fails to generate?a. The DATA step fails execution.b. The SAS data set Sales does not exist.c. The SAS data set Sales has no observations.d. The PRINT procedure contains a syntax error.Correct answer: bThe DATA step creates a permanent SAS data set, Sasdata.Salesdata . The PRINTprocedure is printing a temporary SAS data set, Sales , that is stored in the Work library. At the beginning of the SAS session, Work.Sales does not exist.You can learn about•creating permanent data sets with the DATA step in Creating SAS Data Setsfrom Raw Data• temporary data sets in Basic Concepts . 6. Which action assigns a reference named SALES to a permanent SAS data library? a. Issuing the command:libref SALES 'SAS-data-library'b. Issuing the command:libname SALES 'SAS-data-library'c.Submitting the statement: libref SALES 'SAS-data-library';d. Submitting the statement: libname SALES 'SAS-data-library';Correct answer: dThe LIBNAME statement assigns a reference known as a libref to a permanent SAS data library. The LIBNAME command opens the LIBNAME window.You can learn about the LIBNAME statement in Referencing Files and Setting Options .7. The following SAS program is submitted:data newstaff;set staff;<insert WHERE statement here>run;Which one of the following WHERE statements completes the program and selects only observations with a Hire_date of February 23, 2000?a. where hire_date='23feb2000'd;b. where hire_date='23feb2000';c. where hire_date='02/23/2000'd;d.where hire_date='02/23/2000';Correct answer: aA SAS date constant must take the form of one- or two-digit day, three-digit month, and two- or four-digit year, enclosed in quotation marks and followed by a d('ddmmmyy<yy>'d).You can learn about SAS date constants in Creating SAS Data Sets from Raw Data. 8. Which one of the following SAS date formats displays the SAS date value for January 16, 2002 in the form of 16/01/2002?a. DATE10.b. DDMMYY10.c. WEEKDATE10.d. DDMMYYYY10.Correct answer: bThe requested output is in day-month-year order and is 10 bytes long, so DDMMYY10. is the correct format. Although WEEKDATE10. is a valid SAS format, it does not display the SAS date value as shown in the question above. DDMMYYYY10. is not a valid SAS date format, and the DATE w. format cannot accept a length of 10.You can learn about•the DDMMYY10. format in Creating List Reports•the WEEKDATE10. format in Reading Date and Time Values.9. Which one of the following displays the contents of an external file from within a SAS session?a. the LIST procedureb.the PRINT procedurec.the FSLIST procedured.the VIEWTABLE windowCorrect answer: cThe PRINT procedure and VIEWTABLE window display the values in SAS data sets. The FSLIST procedure displays the values in external files. There is no LIST procedure in SAS.You can learn about•the PRINT procedure in Creating List ReportsSAS中文论坛网站SAS 中文论坛网站• the VIEWTABLE window in Referencing Files and Setting Options .10. The SAS data set Sashelp.Prdsale contains the variables Region and Salary with 4 observations per Region . Sashelp.Prdsale is sorted primarily by Region and within Region by Salary in descending order.The following program is submitted:data one;set sashelp.prdsale;retain temp;by region descending salary;if first.region thendo;temp=salary;output;end;if last.region thendo;range=salary-temp;output;end;run;For each region, what is the number of observation(s) written to the output data set? a. 0b. 1c. 2d. 4Correct answer: cThe expression first.region is true once for each region group. The expression last.region is true once for each region group. Therefore, each OUTPUT statement executes once for a total of 2 observations in the output data set.You can learn about the FIRST.variable expression and the OUTPUT statement in Reading SAS Data Sets .11. The following SAS program is submitted:proc contents data=sasuser.houses;run;The exhibit below contains partial output produced by the CONTENTS procedure. Data Set NameSASUSER.HOUSES Observations 15 Member TypeDATA Variables 6 EngineV9 Indexes 0 CreatedTuesday, April 22, 2003 03:09:25 PMObservation Length 56 Last ModifiedTuesday, April 22, 2003 03:09:25 PMDeleted Observations0 Protection CompressedNOData Set Type Sorted NOLabel Residential housingfor saleData Representation WINDOWS_32Encoding wlatin1 Western(Windows)Which of the following describes the Sasuser.Houses data set?a.The data set is sorted but not indexed.b.The data set is both sorted and indexed.c.The data set is not sorted but is indexed.d.The data set is neither sorted nor indexed.Correct answer: dThe exhibit above shows partial output from the CONTENTS procedure, In the top right-hand column of the output, you see that Indexes has a value of 0, which indicates that no indexes exist for this data set. Also, Sorted has a value of NO, which indicates that the data is not sorted.You can learn about the CONTENTS procedure in Referencing Files and Setting Options.12.The following SAS program is submitted:proc sort data=work.test;by fname descending salary;run;Which one of the following represents how the observations are sorted?a. The data set Work.Test is stored in ascending order by both Fname and Salary values.b. The data set Work.Test is stored in descending order by both Fname and Salary values.c. The data set Work.Test is stored in descending order by Fname and ascending order by Salary values.d. The data set Work.Test is stored in ascending order by Fname and in descending order by Salary values.Correct answer: dThe DESCENDING keyword is placed before the variable name it modifies in the BY statement, so the correct description is in descending order by Salary value within ascending Fname values.You can learn about the SORT procedure and the DESCENDING keyword in Creating List Reports.13.The following SAS program is submitted:data names;SAS中文论坛网站title='EDU';if title='EDU' thenDivision='Education';else if title='HR' thenDivision='Human Resources';else Division='Unknown';run;Which one of the following represents the value of the variable Division in the output data set?catiocationc.Human Red.Human ResourcesCorrect answer: bThe length of the variable Division is set to 9 when the DATA step compiles. Since the value of the variable Title is EDU, the first IF condition is true; therefore, the value of the variable Division is Education.You can learn about•the length of a variable in Understanding DATA Step Processing•IF-THEN statements in Creating and Managing Variables.14.Which one of the following SAS programs creates a variable named City with a value of Chicago?a.data work.airports;AirportCode='ord';if AirportCode='ORD' City='Chicago';run;b.data work.airports;AirportCode='ORD';if AirportCode='ORD' City='Chicago';run;c.data work.airports;AirportCode='ORD';if AirportCode='ORD' then City='Chicago';run;d.data work.airports;AirportCode='ORD';if AirportCode='ORD';then City='Chicago';run;Correct answer: cThe correct syntax for an IF-THEN statement is: IF expression THEN statement;In this example, the variable City is assigned a value of Chicago only if the expression AirportCode='ORD' is true.SAS中文论坛网站SAS 中文论坛网站You can learn about IF-THEN statements in Creating and Managing Variables .15.The following SAS program is submitted:data work.building;code='DAL523';code='SANFRAN604';code='HOUS731';length code $ 20;run;Which one of the following is the length of the code variable?a. 6b. 7c. 10d. 20Correct answer: aThe DATA step first goes through a compilation phase, then an execution phase. The length of a variable is set during the compilation phase and is based on the first time the variable is encountered. In this case, the variable code is set to the length of the text string DAL523 which is 6 characters long. The next assignment statements are ignored during compilation. The LENGTH statement is also ignored since the length has already been established, but a note will be written to the log.You can learn about•the compilation phase of the DATA step in Understanding DATA StepProcessing• the LENGTH statement in Creating and Managing Variables .16. Which of the following statements creates a numeric variable named IDnumber with a value of 4198?a. IDnumber=4198;b. IDnumber='4198';c. length IDnumber=8;d. length IDnumber $ 8;Correct answer: aThe first reference to the SAS variable in the DATA step sets the name, type, and length of the variable in the program data vector (PDV) and in the output SAS data set. The assignment statement IDnumber=4198; is the first reference and creates a numeric variable named IDnumber with a default storage length of 8 bytes.You can learn about• creating variables in the DATA step in Understanding DATA Step ProcessingSAS 中文论坛网站• numeric variables in Basic Concepts .17. The following program is submitted:data fltaten;input jobcode $ salary name $;cards;FLAT1 70000 BobFLAT2 60000 JoeFLAT3 30000 Ann;run;data desc;set fltaten;if salary>60000 then description='Over 60';else description='Under 60';run;What is value of the variable named description when the value for salary is 30000? a.Under 6 b.Under 60 c.Over 60 d. ' ' (missing character value)Correct answer: aThe variable description is being created by the IF-THEN/ELSE statement during compilation. The first occurrence of the variable description is on the IF statement, and since it is assigned the value Over 60, the length of the variable is 7. Therefore, for the salary value of 30000, description has the value of Under 6 (the 0 is truncated.) You can learn about•the compilation phase of the DATA step in Understanding DATA StepProcessing• IF-THEN/ELSE statements in Creating and Managing Variables .18. A raw data file is listed below.1---+----10---+----20---+---10232015The following program is submitted:data all_sales;infile 'file-specification';input receipts;<insert statement(s) here>run;SAS 中文论坛网站Which statement(s) complete(s) the program and produce(s) a running total of the Receipts variable?a. total+receipts;b.total 0; sum total;c. total=total+receipts;d. total=sum(total,receipts);Correct answer: aThe SUM function and the assignment statement do not retain values across iterations of the DATA step. The sum statement total+receipts; initializes total to 0, ignores missing values of receipt , retains the value of total from one iteration to the next, and adds the value of receipts to total .You can learn about the sum statement in Creating and Managing Variables .19.A raw data file is listed below.1---+----10---+----20---+---1901 21905 11910 61925 11941 1The following SAS program is submitted and references the raw data file above: data money;infile 'file-specification';input year quantity;total=total+quantity;run;What is the value of total when the data step finishes executing?a.0 b.1 c.11 d. . (missing numeric value)Correct answer: dThe variable Total is assigned a missing value during the compilation phase of the DATA step. When the first record is read in, SAS processes: total=.+2; which results in a missing value. Therefore the variable Total remains missing for all observations. You can learn about• the compilation phase of the DATA step in Understanding DATA StepProcessingSAS 中文论坛网站• using missing values with arithmetic operators in Creating SAS Data Sets fromRaw Data .20.The following program is submitted:data test;average=mean(6,4,.,2);run;What is the value of average ?a.0 b.3 c.4 d. . (missing numeric value)Correct answer: cThe MEAN function adds all of the non-missing values and divides by the number of non-missing values. In this case, 6 + 4 + 2 divided by 3 is 4.You can learn about the MEAN function in Transforming Data with SAS Functions .21.The following SAS program is submitted:data work.AreaCodes;Phonenumber=3125551212;Code='('!!substr(Phonenumber,1,3)!!')';run;Which one of the following is the value of the variable Code in the output data set? a. ( 3)b. (312)c. 3d. 312Correct answer: aAn automatic data conversion is performed whenever a numeric variable is used where SAS expects a character value. The numeric variable is written with the BEST12. format and the resulting character value is right-aligned when the conversion occurs. In this example, the value of Phonenumber is converted to character and right-aligned before the SUBSTR function is performed. Since there are only 10 digits in the value ofPhonenumber , the right-aligned value begins with two blanks. Therefore the SUBSTR function picks up two blanks and a 3, and uses the BEST12. format to assign that value to Code . Then, the parentheses are concatenated before and after the two blanks and a 3. You can learn about automatic data conversion and the SUBSTR function inTransforming Data with SAS Functions .22.The following SAS program is submitted:data work.inventory;products=7;SAS 中文论坛网站do until (products gt 6);products+1;end;run;Which one of the following is the value of the variable products in the output data set? a. 5b. 6c. 7d. 8Correct answer: dA DO UNTIL loop always executes at least once because the condition is not evaluated until the bottom of the loop. In the SAS program above, the value of Products isincremented from 7 to 8 on the first iteration of the DO UNTIL loop, before the condition is checked. Therefore the value of Products is 8.You can learn about DO UNTIL loops in Generating Data with DO Loops .23.The following program is submitted:data work.test;set work.staff (keep=salary1 salary2 salary3);<insert ARRAY statement here>run;Which ARRAY statement completes the program and creates new variables?a. array salary{3};b. array new_salary{3};c. array salary{3} salary1-salary3;d. array new_salary{3} salary1-salary3;Correct answer: bAlthough each of the ARRAY statements listed above is a valid statement, only AnswerB creates new variables named new_salary1, new_salary2 and new_salary3. AnswerC and AnswerD both create an array that groups the existing data set variables salary1, salary2, and salary3. Since the array in Answer A is named salary , it also uses the existing data set variables.You can learn about creating new variables in an ARRAY statement in Processing Variables with Arrays .24.Which of the following permanently associates a format with a variable?a. the FORMAT procedureb. a FORMAT statement in a DATA stepc. an INPUT function with format modifiersd. an INPUT statement with formatted style inputCorrect answer: bSAS 中文论坛网站To permanently associate a format with a variable, you use the FORMAT statement in a DATA step. You can use the FORMAT procedure to create a user-defined format. You use the INPUT function to convert character data values to numeric values with an informat. You use the INPUT statement to read data into a data set with an informat. You can learn about•permanently assigning a format to a variable in Creating and Managing Variables •the FORMAT statement in Creating List Reports •the FORMAT procedure in Creating and Applying User-Defined Formats •the INPUT function in Transforming Data with SAS Functions • the INPUT statement in Reading Raw Data in Fixed Fields .25.The following report is generated:Styleof homesn A skingPriceCONDO 4 $99,313RANCH 4 $68,575SPLIT3 $77,983 TWOSTORY4 $83,825Which of the following steps created the report?a. proc freq data=sasuser.houses;tables style price /nocum;format price dollar10.;label style="Style of homes"price="Asking price";run;b.proc print data=sasuser.houses; class style;var price;table style,n price*mean*f=dollar10.;label style="Style of homes"price="Asking price";run;c.proc means data=sasuser.houses n mean; class style;var price;format price dollar10.;label style="Style of homes"price="Asking price";run;d.proc report data=sasuser.houses nowd headline; column style n price;define style / group "Style of homes";define price / mean format=dollar8."Asking price";run;Correct answer: dThe FREQ procedure cannot create the average asking price. The CLASS statement and the VAR statement are not valid for use with the PRINT procedure. The MEANS procedure output would have both the N statistic and the N Obs statistic since a CLASS statement is used. The REPORT procedure produced the report.You can learn about•the FREQ procedure in Producing Descriptive Statistics•the PRINT procedure in Creating List Reports•the MEANS procedure in Producing Descriptive Statistics•the REPORT procedure in Creating Enhanced List and Summary Reports. 26.A SAS report currently flows over two pages because it is too long to fit within the specified display dimension. Which one of the following actions would change the display dimension so that the report fits on one page?a.Increase the value of the LINENO option.b.Decrease the value of the PAGENO option.c.Decrease the value of the LINESIZE option.d.Increase the value of the PAGESIZE option.Correct answer: dThe PAGESIZE= SAS system option controls the number of lines that compose a page of SAS procedure output. By increasing the number of lines available per page, the report might fit on one page.You can learn about the PAGESIZE= option in Referencing Files and Setting Options.27.Which one of the following SAS REPORT procedure options controls how column headings are displayed over multiple lines?a. SPACE=b. SPLIT=c. LABEL=d. BREAK=Correct answer: bThe SPLIT= option specifies how to split column headings. The SPACE=, LABEL= and BREAK= options are not valid options in PROC REPORT.You can learn about the SPLIT= option for the REPORT procedure in Creating Enhanced List and Summary Reports.SAS中文论坛网站28.The following SAS program is submitted:ods html file='newfile.html';proc print data=sasuser.houses;run;proc means data=sasuser.houses;run;proc freq data=sasuser.shoes;run;ods html close;proc print data=sasuser.shoes;run;How many HTML files are created?a. 1b. 2c. 3d. 4Correct answer: aBy default, one HTML file is created for each FILE= option or BODY= option in the ODS HTML statement. The ODS HTML CLOSE statement closes the open HTML file and ends the output capture. The Newfile.html file contains the output from the PRINT, MEANS, and FREQ procedures.You can learn about the ODS HTML statement in Producing HTML Output.29.A frequency report of the variable Jobcode in the Work.Actors data set is listed below.Jobcode Frequency Percent CumulativeFrequency CumulativePercentActor I233.33233.33Actor II233.33466.67Actor III233.336100.00Frequency Missing = 1The following SAS program is submitted:data work.joblevels;set work.actors;if jobcode in ('Actor I', 'Actor II') thenjoblevel='Beginner';if jobcode='Actor III' thenjoblevel='Advanced';else joblevel='Unknown';run;Which of the following represents the possible values for the variable joblevel in the Work.Joblevels data set?a.Advanced and Unknown onlySAS中文论坛网站SAS 中文论坛网站b. Beginner and Advanced onlyc. Beginner , Advanced , and Unknownd. ' ' (missing character value)Correct answer: aThe DATA step will continue to process those observations that satisfy the condition in the first IF statement Although Joblevel might be set to Beginner for one or more observations, the condition on the second IF statement will evaluate as false, and the ELSE statement will execute and overwrite the value of Joblevel as Unknown . You can learn about•the IF statement in Creating SAS Data Sets from Raw Data • the ELSE statement in Creating and Managing Variables .30.The descriptor and data portions of the Work.Salaries data set are shown below. Variable Type Len Posname Char 8 0salary Char 8 16status Char 8 8name status salary Liz S 15,600 Herman S 26,700 Marty S 35,000The following SAS program is submitted:proc print data=work.salaries;where salary<20000;run;What is displayed in the SAS log after the program is executed?a. A NOTE indicating that 1 observation is read.b. A NOTE indicating that 0 observations were read.c. A WARNING indicating that character values have been converted to numeric values.d. An ERROR indicating that the WHERE clause operator requires compatible variables. Correct answer: dSalary is defined as a character variable. Therefore, the value in the WHERE statement must be the character value 20,000 enclosed in quotation marks.You can learn about the WHERE statement in Creating List Reports .31.Which of the following statements is true when SAS encounters a syntax error in a DATA step?SAS 中文论坛网站a. The SAS log contains an explanation of the error.b. The DATA step continues to execute and the resulting data set is complete.c. The DATA step stops executing at the point of the error and the resulting data set contains observations up to that point.d. A note appears in the SAS log indicating that the incorrect statement was saved to a SAS data set for further examination.Correct answer: aSAS scans the DATA step for syntax errors during the compilation phase. If there are syntax errors, those errors get written to the log. Most syntax errors prevent further processing of the DATA step.You can learn about how SAS handles syntax errors in the DATA step in Understanding DATA Step Processing .32.Which TITLE statement would display JANE'S DOG as the text of the title?a. title "JANE"S DOG";b. title 'JANE"S DOG';c. title "JANE'S DOG";d. title 'JANE' ' 'S DOG';Correct answer: cThe title in a TITLE statement must be enclosed in a pair of matched quotation marks. Unbalanced quotation marks can cause problems for SAS. To hide an unmatched single quotation mark, surround the title text with matched double quotation marks.You can learn about•the TITLE statement in Creating List Reports • unbalanced quotation marks in Editing and Debugging SAS Programs .33.The following SAS program is submitted:data test;input animal1 $ animal2 $mlgrams1 mlgrams2;cards;hummingbird ostrich 54000.39 90800000.87;run;Which one of the following represents the values of each variable in the output data set?a. animal1 animal2 mlgrams1 mlgrams2 hummingb ostrich 54000.39 90800000b. animal1 animal2 mlgrams1 mlgrams2 hummingb ostrich 54000.39 90800000.87c. animal1 animal2 mlgrams1 mlgrams2 hummingbird ostrich 54000.39 90800000d. animal1 animal2 mlgrams1 mlgrams2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dr. Baokun Li 经济实验教学中心 商务数据挖掘中心
循环程序
• 循环:在数据步的一次执行中,某些语句需要反复执行许 多遍,称为循环。 • Do – End 语句:
– 格式:DO I = A to B by C; < Loop Body >; END; – 说明: DO语句组第一次执行时,指针变量 I 等于初值 A。当终值 B 和增量 C 都存在时,则每执行到 END语句时, 指针变量+增量 作为新的指针变量,并与终值作比较,直到指针变量的值变化超 过终值时才停止执行DO语句组。最后一次执行完后,指针变量值 超过终值。
data x; sum=0; t=1; do while (t<=100); sum=sum+t; t=t+1; output; end; run; data x; sum=0; t=1; do while (1=1); sum=sum+t; t=t+1; output; if t>100 then leave; end; run;
循环程序举例
data blah; do x= 1 to 5 by 1; put x=; end; run;
循环的其它用途
循环控制变量 或者计数变量
data _null_; do thenuni(999); put blah=; end; run;
循环的其它用途 用Input建立变量
• 通常 do 循环的计数变量是数值变量,但并 不必须这样。
data epi999; do thegrade = ‘A’, ‘B’, ‘C’, ‘D’, ‘F’; input thescore @@; output; end; datalines; 2 5 12 3 1 ; run;
嵌套循环
• 循环可以嵌套。这样做的目的是读入二向 表(Two Way Table).
嵌套循环-输入表格数据
嵌套循环-输入表格数据
data table2_4; format income $10. satis $5.; do income = " lt6"," six"," fifteen", "twentyfive"; do satis = " vd", " ld", " ms", "vs"; input theWeight @@ ; output; end; end; datalines; 20 24 80 82 22 38 104 125 13 28 81 113 7 18 54 92 ;run;
无限循环(Do While)
• 如果你在计算机编程语言里曾经学习过循环,那 么, • 你可以建立一个无限循环语句,当然要有一个终 止条件: data x; do while (1=1); ... if (/*something*/) then leave; end; run;
无限循环(Do While)
• 从 1 循环到 10,000 和从 1 循环到 5一样简单.
循环的其它用途 用Input建立变量
• 这个例子给出了一种常用的读入数据方法。
data blah; do id = 101 to 107 by 2; input thescore @@; output; end; datalines; 12 95 73 0 ; run;
循环程序举例
– 双重循环:循环体中嵌套循环 – 例2:打印乘法口诀表
Data a; Do I = 1 to 9; * 被乘数从 1 循环到 9 ; Do j = 1 to I; * 乘数从 1 循环到被乘数 ; S = I * j; Put I “*” j “=“ S “ “ @@; * @@表示输出后不换行 ; End ; Put; * Put 语句使输出完一个被乘数后换行 ; End; Run;
嵌套循环-输入表格数据
proc freq data = table2_4; weight theWeight; tables income*satis/nocol norow nopercent; run;
循环程序举例
– 例1:循环10次。
Data a; do i=0 to 9; put i; end; run; * Put语句:将变量值显示在日志窗口;
– 注意:如果初值终值均未规定,语句组仅执行一次 (DO END 相当于括号)。如果未规定增量,增量的 缺省值为 1。初值和终值是在第一次执行循环以前计算 的。