SAS软件应用基础期中考试答案

合集下载

sas测试题及答案

sas测试题及答案

sas测试题及答案1. SAS中,如何将一个数据集的所有变量的值增加10?A. data dataset; set dataset; +10; run;B. data dataset; set dataset; +10; quit;C. data dataset; set dataset; +10; run;D. data dataset; set dataset; +10;答案:C2. 在SAS中,如何创建一个新的数据集,并将原数据集中的变量`Var1`和`Var2`复制到新数据集中?A. data new_dataset; set old_dataset; Var1 =old_dataset.Var1; Var2 = old_dataset.Var2; run;B. data new_dataset; set old_dataset; Var1 = Var1; Var2 = Var2; run;C. data new_dataset / old_dataset; set old_dataset; Var1 = old_dataset.Var1; Var2 = old_dataset.Var2; run;D. data new_dataset; set old_dataset; Var1 = Var1; Var2 = Var2; quit;答案:A3. SAS中,如何使用`proc print`步骤打印数据集的前10行?A. proc print data=dataset firstobs=10;B. proc print data=dataset firstobs=1 obs=10;C. proc print data=dataset firstobs=10;D. proc print data=dataset firstobs=1 obs=10;答案:B4. 在SAS中,如何使用`if-then`语句来创建一个新的变量`NewVar`,当`Var1`大于10时,`NewVar`的值为`Var1`的两倍,否则为0?A. data dataset; set dataset; if Var1 > 10 then NewVar = 2 * Var1; else NewVar = 0; run;B. data dataset; set dataset; if Var1 > 10 then NewVar = 2 * Var1; NewVar = 0; run;C. data dataset; set dataset; if Var1 > 10 NewVar = 2 *Var1; else NewVar = 0; run;D. data dataset; set dataset; if Var1 > 10 then NewVar = 2 * Var1; else NewVar = 0; quit;答案:A5. SAS中,如何使用`proc means`步骤计算数据集中`Var1`的平均值?A. proc means data=dataset N mean of Var1;B. proc means data=dataset N mean Var1;C. proc means data=dataset N=mean Var1;D. proc means data=dataset N mean Var1;答案:D结束语:以上是SAS测试题及答案,希望能够帮助您更好地理解和掌握SAS编程的基础知识。

最新-学年度第二学期统计分析软件SAS考试试卷(A)(答案)

最新-学年度第二学期统计分析软件SAS考试试卷(A)(答案)

暨 南 大 学 考 试 试 卷一、填空题(共10空,每空2分,共20分)1. 一个完整的SAS 程序由二部分组成: _数据 __步与_ 过程 __步.2. 多元统计分析中的判别分析与聚类分析的本质区别是: _类别是否已知,若已知,则为判别分析;否则为聚类分析 _.3. 进行数值资料的描述统计描述的两个基本SAS 过程是: _MEANS _过程与__ _UNIVARIATE _过程.4. 把多个SAS 数据集进行横向合并、纵向合并所用的语句分别是_MERGE _ 语句、__SET _语句.5. 进行分类资料的统计分析的两个基本SAS 过程是: _ LOGISTIC __过程与_ FREQ __过程.6. 进行数值资料的方差分析的两个基本SAS 过程是: _ ANOVA __过程与_ GLM __过程.7. 在SAS 中,可用于进行相关分析的过程常用的有:简单线性相关及等级相关的_ CORR _过程与典型相关的_ CANCORR _过程.8. 秩和检验的SAS 过程中最常用的有二种:一是用于配对设计数值变量资料符号秩和验的 UNIVARIATE _过程,另一是用于成组设计两样本比较及多个样本比较的秩和检验的 _ NPAR1WAY _过程.9. GLM 过程可用于:进行(1)非均衡设计资料的 方差分析 _、(2)协方差分析及建立(3)_ 多项式 _回归.10. 在SAS 中,可用于进行数值资料回归分析的过程常用的有:一元及多元线性回归的 REG _过程与非线性回归的_ NLIN _过程.(一)SAS 数据集E3是对20名25∽34岁的健康妇女进行体检取得的,现需要建立由头肌皮褶厚度(1X ,cm),大腿围(2X ,cm)及中臂围(3X ,cm)预测身体脂肪(Y ,cm)分布的方程. 运行SAS 某些过程,有以下SAS 运行结果:The REG ProcedureModel: M1Dependent Variable: yAnalysis of VarianceSum of MeanSource DF Squares Square F Value Pr > F Model 3 396.98461 132.32820 21.52 <.0001Error 16 98.40489 6.15031Corrected Total 19 495.38950Root MSE 2.47998 R-Square 0.8014Dependent Mean 20.19500 Adj R-Sq 0.7641Coeff Var 12.28017Parameter EstimatesParameter Standard Variance Variable DF Estimate Error t Value Pr > |t| Inflation Intercept 1 117.08469 99.78240 1.17 0.2578 0 x1 1 4.33409 3.01551 1.44 0.1699 708.84291 x2 1 -2.85685 2.58202 -1.11 0.2849 564.34339 x3 1 -2.18606 1.59550 -1.37 0.1896 104.60601The PRINCOMP ProcedureCorrelation Matrixx1 x2 x3x1 1.0000 0.9238 0.4578x2 0.9238 1.0000 0.0847x3 0.4578 0.0847 1.0000Eigenvalues of the Correlation MatrixEigenvalue Difference Proportion Cumulative1 2.06647268 1.13367198 0.6888 0.68882 0.93280070 0.93207408 0.3109 0.99983 0.00072662 0.0002 1.0000Eigenvectorsz1 z2 z3x1 0.694696 -.050106 -.717557x2 0.629428 -.440509 0.640135x3 0.348164 0.896349 0.274482The REG ProcedureModel: M2Dependent Variable: yAnalysis of VarianceSum of MeanSource DF Squares Square F Value Pr > FModel 3 396.98461 132.32820 21.52 <.0001Error 16 98.40489 6.15031Corrected Total 19 495.38950Root MSE 2.47998 R-Square 0.8014Dependent Mean 20.19500 Adj R-Sq 0.7641 Coeff Var 12.28017Parameter EstimatesParameter Standard Variance Variable DF Estimate Error t Value Pr > |t| Inflation Intercept 1 20.19500 0.55454 36.42 <.0001 0 z1 1 2.93576 0.39578 7.42 <.0001 1.00000 z2 1 -1.64976 0.58908 -2.80 0.0128 1.00000 z3 1 -27.38341 21.10659 -1.30 0.2129 1.000001.为建立Y 关于321,,X X X 的线性回归方程,需应用的SAS 过程为:A. LOGISTIC 过程B.NLIN 过程C.GLM 过程D.REG 过程 2.由所建立的线性回归方程可见: 用321,,X X X 来解释Y 的变动,只可以解释其中的( )%, 在0.05的显著性水平之下,有显著影响的因素有( )个, 而且三因素间( )共线性现象.A.80.14%, 0, 存在B. 80.14%, 0, 不存在C.76.41%, 0, 不存在D. 80.14%, 3, 存在3.根据对321,,X X X 所作的主成分分析,SAS 运行结果表明, 相关矩阵的最大特征值为( ),实际应用中(按80%的原则),需要选取的主成分为( )个. A. 2.06647268,1 B. 1.13367198,1 C. 2.06647268,2 D. 1.13367198,24.根据对321,,X X X 所作的主成分分析,SAS 运行结果表明,第一主成分为=1ZA. 3213481.06294.06947.0X X X ++B. 3212745.06401.07176.0X X X ++-C.3218963.04405.00501.0X X X +--D.以上结果都不对5. 根据SAS 运行结果,取Y 关于主成分321,,Z Z Z 的线性回归方程,能有效地消除多重共线性,所得的线性回归方程为 332211ˆˆˆ1950.20ˆZ Z Z Y βββ+++=,其中: =1ˆβA. 0.8014B. 2.93576C.0.39578D. 7.42(二)为110名7岁男童身高资料(SAS数据集名为P6),试编制频数表,计算描述性统计量并进行正态性检验. 运行SAS某些过程,有以下SAS运行结果:The UNIVARIATE ProcedureVariable: xMomentsN 110 Sum Weights 110Mean 119.727273 Sum Observations 13170Std Deviation 4.74132543 Variance 22.4801668Skewness 0.15461074 Kurtosis -0.0252871Uncorrected SS 1579258.52 Corrected SS 2450.33818Coeff Variation 3.96010476 Std Error Mean 0.45206764Basic Statistical MeasuresLocation VariabilityMean 119.7273 Std Deviation 4.74133Median 119.9000 Variance 22.48017Mode 114.3000 Range 24.30000Interquartile Range 6.40000NOTE: The mode displayed is the smallest of 5 modes with a count of 3.Tests for NormalityTest --Statistic--- -----p Value------Shapiro-Wilk W 0.993143 Pr < W 0.8623Kolmogorov-Smirnov D 0.055958 Pr > D >0.1500Cramer-von Mises W-Sq 0.036956 Pr > W-Sq >0.2500Anderson-Darling A-Sq 0.231585 Pr > A-Sq >0.2500回答以下问题:6.为编制频数表,所使用的SAS过程为:A. FREQ 过程B. MEANS 过程C. UNIVARIATE 过程D.TTEST 过程7.要计算诸如除均值,标准差,最值之外的统计量,还要计算众数,中位数,四分位间距等描述性统计量,需要使用的SAS过程为:A. FREQ 过程B. MEANS 过程C. UNIVARIATE 过程D.REG 过程8.为进行分布的正态性检验, 需在所使用的UNIVARIATE过程( )语句中加上NORMAL选项.A. VAR 语句B. PROC UNIVARIATE 语句C. MODEL 语句D.BY 语句9.根据SAS运行结果, 样本中位数为:A. 119.7273B. -0.0253C. 119.9000D. 114.300010.根据SAS运行结果, 可认为在显著性水平( )下所给的身高资料( )正态分布.A.0.05,服从B. 0.5, 服从C. 0.05,不服从D. 0.5 不服从调查1329名血中胆固醇(CHO)含量及成人血压(SBP)和冠心病(D)的关系,得到如下表所示的列联表:要求进行相应的统计分析. 运行SAS某些过程,有以下SAS运行结果:The FREQ ProcedureSummary Statistics for case by choCochran-Mantel-Haenszel Statistics (Based on Table Scores)Statistic Alternative Hypothesis DF Value Prob ---------------------------------------------------------------1 Nonzero Correlation 1 26.1475 <.00012 Row Mean Scores Differ 1 26.1475 <.00013 General Association 3 35.0021 <.0001The FREQ ProcedureSummary Statistics for case by sbpCochran-Mantel-Haenszel Statistics (Based on Table Scores)Statistic Alternative Hypothesis DF Value Prob ---------------------------------------------------------------1 Nonzero Correlation 1 21.9444 <.00012 Row Mean Scores Differ 1 21.9444 <.00013 General Association 3 28.9441 <.0001The LOGISTIC ProcedureModel InformationData Set WORK.EX_905Response Variable caseNumber of Response Levels 2Frequency Variable countModel binary logitOptimization Technique Fisher's scoringProbability modeled is case=1.NOTE: 1 observation having nonpositive frequency or weight was excluded since it does not contribute to the analysis.Model Convergence StatusConvergence criterion (GCONV=1E-8) satisfied.Deviance and Pearson Goodness-of-Fit StatisticsCriterion Value DF Value/DF Pr > ChiSqDeviance 14.8472 13 1.1421 0.3170Pearson 13.4287 13 1.0330 0.4153Model Fit StatisticsInterceptIntercept andCriterion Only CovariatesAIC 670.831 630.952SC 676.024 646.529-2 Log L 668.831 624.952Testing Global Null Hypothesis: BETA=0Test Chi-Square DF Pr > ChiSqLikelihood Ratio 43.8791 2 <.0001Score 43.3635 2 <.0001Wald 40.2202 2 <.0001The LOGISTIC ProcedureAnalysis of Maximum Likelihood EstimatesStandard WaldParameter DF Estimate Error Chi-Square Pr > ChiSqIntercept 1 -5.0916 0.4428 132.2333 <.0001cho 1 0.5300 0.1166 20.6717 <.0001 sbp 1 0.4405 0.1091 16.2992 <.0001Odds Ratio EstimatesPoint 95% WaldEffect Estimate Confidence Limits cho 1.699 1.352 2.135 sbp 1.553 1.254 1.924Association of Predicted Probabilities and Observed ResponsesPercent Concordant 66.3 Somers' D 0.393 Percent Discordant 26.9 Gamma 0.422 Percent Tied 6.8 Tau-a 0.051 Pairs 113804 c 0.6971.就所给的资料,为分析胆固醇(CHO)、收缩压(SBP)是否为冠心病(CASE)的危险因素,可考虑应用的SAS 过程有:A.CORR 过程B.GLM 过程C.FREQ 过程D.LOGISTIC 过程E.REG 过程2.根据SAS 运行结果,在0.05的显著性水平下,就胆固醇与冠心病的关系分析,正确的结论为:A. 胆固醇是冠心病的危险因素B. 胆固醇不是冠心病的危险因素C. 对应的CHM 检验的=2χ35.0021D. 对应的CHM 检验的=2χ26.1475E. 对应的CHM 检验的p 值<.00013.根据SAS 运行结果, 在0.05的显著性水平下,就收缩压与冠心病的关系分析,正确的结论为:A. 收缩压不是冠心病的危险因素B. 收缩压是冠心病的危险因素C. 对应的CHM 检验的=2χ21.9444D. 对应的CHM 检验的p 值<.0001E. 对应的CHM 检验的=2χ28.94414.根据SAS运行结果,以下结论错误的有:A.Pearson拟合优度为13.4287B.Pearson拟合优度为14.8472C.在0.05的显著性水平下,可认为胆固醇与收缩压中至少有一个是冠心病的危险因素D.在0.05的显著性水平下,可认为胆固醇与收缩压中没有一个是冠心病的危险因素E.带截距的模型拟合统计量AIC为670.8315. 根据SAS运行结果,以下正确的有:A.在0.05的显著性水平下,可认为胆固醇与收缩压都对冠心病有影响B.胆固醇与收缩压两因素中,最危险的因素是胆固醇C.胆固醇与收缩压两因素中,最危险的因素是收缩压D.胆固醇的比数比1.699指的是胆固醇每增加一个秩次,将平均使冠心病患病率上升1.699倍E.胆固醇的比数比1.699指的是胆固醇每增加一个秩次,将平均使冠心病患病率下降1.699倍四、分析计算题(共3题, 共45分)1.(15分)某个保健矿泉疗养地做了一个减肥计划的广告,10个人受广告吸引前去治疗,治疗前后每人的体重(为变量X与Y,kg)记录在SAS数据集EXER_05中.试以5%水平检验该治疗对减轻体重是否有效. 要求:(1)问可应用哪些SAS过程来实现相应的计算?(2)根据以下SAS运行结果,完成相应的SAS程序;(3)进行简要的分析说明.The UNIVARIATE ProcedureVariable: dMomentsN 10 Sum Weights 10Mean 1.33 Sum Observations 13.3Std Deviation 0.73794008 Variance 0.54455556 Skewness -0.435611 Kurtosis -0.5080605Uncorrected SS 22.59 Corrected SS 4.901 Coeff Variation 55.4842162 Std Error Mean 0.23335714Basic Statistical MeasuresLocation VariabilityMean 1.330000 Std Deviation 0.73794Median 1.400000 Variance 0.54456Mode . Range 2.30000Interquartile Range 0.90000Tests for Location: Mu0=0Test -Statistic- -----p Value------Student's t t 5.699418 Pr > |t| 0.0003Sign M 4.5 Pr >= |M| 0.0039Signed Rank S 22.5 Pr >= |S| 0.0039Tests for NormalityTest --Statistic--- -----p Value------ Shapiro-Wilk W 0.96075 Pr < W 0.7944Kolmogorov-Smirnov D 0.137908 Pr > D >0.1500Cramer-von Mises W-Sq 0.028982 Pr > W-Sq >0.2500Anderson-Darling A-Sq 0.19758 Pr > A-Sq >0.2500[解] (1)可以应用MEANS 过程、TTEST 过程、UNIVARIATE 过程来实现相应的计算。

SAS-base-考试必备-70真题(附答案)

SAS-base-考试必备-70真题(附答案)

1.The following SAS program is submitted:data WORK.TOTAL;set WORK.SALARY;by Department Gender;if First.<_insert_code_> then Payroll=0;Payroll+Wagerate;if Last.<_insert_code_>;run;The SAS data set WORK.SALARY is currently ordered by Gender within Department.Which inserted code will accumulate subtotals for each Gender within Department?A. GenderB. DepartmentC. Gender DepartmentD. Department GenderAnswer: A-------------------------------------2.Given the following raw data records in TEXT:----|----10---|----20---|----30John,FEB,13,25,14,27,FinalJohn,MAR,26,17,29,11,23,CurrentTina,FEB,15,18,12,13,FinalTina,MAR,29,14,19,27,20,CurrentThe following output is desired:Obs Name Month Status Week1 Week2 Week3 Week4 Week51 John FEB Final $13 $25 $14 $27 .2 John MAR Current $26 $17 $29 $11 $233 Tina FEB Final $15 $18 $12 $13 .4 Tina MAR Current $29 $14 $19 $27 $20 Which SAS program correctly produces the desired output?A.data WORK.NUMBERS;length Name $ 4 Month $ 3 Status $ 7;infile 'TEXT' dsd;input Name $ Month $;if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;format Week1-Week5 dollar6.;run;proc print data=WORK.NUMBERS;run;B.data WORK.NUMBERS;length Name $ 4 Month $ 3 Status $ 7;infile 'TEXT' dlm=',' missover;input Name $ Month $;if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;format Week1-Week5 dollar6.;run;proc print data=WORK.NUMBERS;run;C.data WORK.NUMBERS;length Name $ 4 Month $ 3 Status $ 7;infile 'TEXT' dlm=',';input Name $ Month $ @;if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;format Week1-Week5 dollar6.;run;proc print data=WORK.NUMBERS;run;D.data WORK.NUMBERS;length Name $ 4 Month $ 3 Status $ 7;infile 'TEXT' dsd @;input Name $ Month $;if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;format Week1-Week5 dollar6.;run;proc print data=WORK.NUMBERS;run;Answer: C-------------------------------------3.The Excel workbook REGIONS.XLS contains the following four worksheets:EASTWESTNORTHSOUTHThe following program is submitted:libname MYXLS 'regions.xls';Which PROC PRINT step correctly displays the NORTH worksheet?A. proc print data=MYXLS.NORTH;run;B. proc print data=MYXLS.NORTH$;run;C. proc print data=MYXLS.'NORTH'e;run;D. proc print data=MYXLS.'NORTH$'n;run;Answer: D-------------------------------------4.The following SAS program is submitted:data WORK.DATE_INFO;Day="01" ;Yr=1960 ;X=mdy(Day,01,Yr) ;run;What is the value of the variable X?A. the numeric value 0B. the character value "01011960"C. a missing value due to syntax errorsD. the step will not compile because of the character argument in the mdy function.Answer: A-------------------------------------5.Which statement specifies that records 1 through 10 are to be read from the raw data ?A. infile 'customer.txt' 1-10;B. input 'customer.txt' stop@10;C. infile 'customer.txt' obs=10;D. input 'customer.txt' stop=10;Answer: C-------------------------------------6.After a SAS program is submitted, the following is written to the SAS log:101 data WORK.JANUARY;102 set WORK.ALLYEAR(keep=product month num_Sold Cost);103 if Month='Jan' then output WORK.JANUARY;104 Sales=Cost * Num_Sold;105 keep=Product Sales;-----22ERROR 22-322: Syntax error, expecting one of the following: !,!!, &, *, **, +, -, , <=, <>, =, >, >=,AND, EQ, GE, GT, IN, LE, LT, MAX, MIN, NE, NG,NL,NOTIN, OR, ^=, |, ||, ~=.106 run;What changes should be made to the KEEP statement to correct the errors in the LOG?A. keep=(Product Sales);B. keep Product, Sales;C. keep=Product, Sales;D. keep Product Sales;Answer: D-------------------------------------7.Which of the following choices is an unacceptable ODS destination for producing output that can be viewed in Microsoft Excel?A. MSOFFICE2KB. EXCELXPC. CSVALLD. WINXPAnswer: D-------------------------------------8.The SAS data set named WORK.SALARY contains 10 observations for each department,and is currently ordered by Department. The following SAS program is submitted:data WORK.TOTAL;set WORK.SALARY(keep=Department MonthlyWageRate);by Department;if First.Department=1 then Payroll=0;Payroll+(MonthlyWageRate*12);if Last.Department=1;run;Which statement is true?A. The by statement in the DATA step causes a syntax error.B. The statement Payroll+(MonthlyWageRate*12); in the data step causes a syntax error.C. The values of the variable Payroll represent the monthly total for each department in the WORK.SALARY data set.D. The values of the variable Payroll represent a monthly total for all values of WAGERATE in the WORK.SALARY data set.Answer: C-------------------------------------10.The following SAS program is submitted:data WORK.RETAIL;Cost='$20,000';Discount=.10*Cost;run;What is the result?A. The value of the variable Discount in the output data set is 2000.No messages are written to the SAS log.B. The value of the variable Discount in the output data set is 2000.A note that conversion has taken place is written to the SAS log.C. The value of the variable Discount in the output data set is missing. A note in the SAS log refers to invalid numeric data.D. The variable Discount in the output data set is set to zero.No messages are written to the SAS log.Answer: C 因为有一个$符号-------------------------------------11.Given the existing SAS program:proc format;value agegrplow-12 ='Pre-Teen'13-high = 'Teen';run;proc means data=SASHELP.CLASS;var Height;class Sex Age;format Age agegrp.;run;Which statement in the proc means step needs to be modified or added to generate the following results:Analysis Variable : HeightNSex Age Obs Minimum MaximumMean------------------------------------------------------------------F Pre-Teen 3 51.3 59.8 55.8Teen 6 56.5 66.5 63.0 M Pre-Teen 4 57.3 64.8 59.7 Teen 6 62.5 72.0 66.8 --------------------------------------------------------------------A. var Height / nobs min max mean maxdec=1;B. proc means data=SASHELP.CLASS maxdec=1 ;C. proc means data=SASHELP.CLASS min max mean maxdec=1;D. output nobs min max mean maxdec=1;Answer: C-------------------------------------12.The Excel workbook QTR1.XLS contains the following three worksheets:JANFEBMARWhich statement correctly assigns a library reference to the Excel workbook?A. libname qtrdata 'qtr1.xls';B. libname 'qtr1.xls' sheets=3;C. libname jan feb mar 'qtr1.xls';D. libname mydata 'qtr1.xls' WORK.heets=(jan,feb,mar);Answer: A-------------------------------------13.The following SAS program is submitted:data WORK.TEST;set WORK.MEASLES(keep=Janpt Febpt Marpt);array Diff{3} Difcount1-Difcount3;array Patients{3} Janpt Febpt Marpt;run;What new variables are created?A. Difcount1, Difcount2 and Difcount3B. Diff1, Diff2 and Diff3C. Janpt, Febpt, and MarptD. Patients1, Patients2 and Patients3Answer: A-------------------------------------14.Which of the following programs correctly invokes the DATA Step Debugger:A.data WORK.TEST debug;set WORK.PILOTS;State=scan(cityState,2,' ');if State='NE' then description='Central';run;B.data WORK.TEST debugger;set WORK.PILOTS;State=scan(cityState,2,' ');if State='NE' then description='Central';run;C.data WORK.TEST / debug;set WORK.PILOTS;State=scan(cityState,2,' ');if State='NE' then description='Central';run;D.data WORK.TEST / debugger;set WORK.PILOTS;State=scan(cityState,2,' ');if State='NE' then description='Central';run;Answer: c-------------------------------------15.Which statement is true concerning the SAS automatic variable _ERROR_?A. It cannot be used in an if/then condition.B. It cannot be used in an assignment statement.C. It can be put into a keep statement or keep= option.D. It is automatically dropped.Answer: D-------------------------------------16.The following SAS program is submitted:data WORK.DATE_INFO;X='04jul2005'd;DayOfMonth=day(x);MonthOfYear=month(x);Year=year(x);run;What types of variables are DayOfMonth, MonthOfYear, and Year?A. DayOfMonth, Year, and MonthOfYear are character.B. DayOfMonth, Year, and MonthOfYear are numeric.C. DayOfMonth and Year are numeric. MonthOfYear is character.D. DayOfMonth, Year, and MonthOfYear are date values.Answer: B-------------------------------------17.Given the following data step:data WORK.GEO;input City $20.;if City='Tulsa' thenState='OK';Region='Central';if City='Los Angeles' thenState='CA';Region='Western';datalines;TulsaLos AngelesBangor;run;After data step execution, what will data set WORK.GEO contain?A.City State Region----------- ----- -------Tulsa OK WesternLos Angeles CA WesternBangor WesternB.City State Region----------- ----- -------Tulsa OK WesternLos Angeles CA WesternBangorC.City State Region----------- ----- -------Tulsa OK CentralLos Angeles CA WesternBangor WesternD.City State Region----------- ----- -------Tulsa OK CentralLos CA WesternAnswer: A-------------------------------------18.Which statement describes a characteristic of the SAS automatic variable_ERROR_?A. The _ERROR_ variable maintains a count of the number of data errors in a DATA step.B. The _ERROR_ variable is added to the program data vector and becomes part of the data set being created.C. The _ERROR_ variable can be used in expressions in the DATA step.D. The _ERROR_ variable contains the number of the observation that caused the data error.Answer: C-------------------------------------19.The SAS data set WORK.ONE contains a numeric variable named Num and a character variable named Char:WORK.ONENum Char--- ----1 233 231 77The following SAS program is submitted:proc print data=WORK.ONE;where Num='1';run;What is output?A.Num Char--- ----1 23B.Num Char--- ----1 231 77C.Num Char--- ----1 233 231 77D. No output is generated.Answer: D-------------------------------------20. The data set WORK.REALESTATE has the variable LocalFee with a format of 9. and a variable CountryFee with a format of 7.;The following SAS program is submitted:data WORK.FEE_STRUCTURE;format LocalFee CountryFee percent7.2;set WORK.REALESTAT;LocalFee=LocalFee/100;CountryFee=CountryFee/100;run;What are the formats of the variables LOCALFEE and COUNTRYFEE in the output dataset?A. LocalFee has format of 9. and CountryFee has a format of 7.B. LocalFee has format of 9. and CountryFee has a format of percent7.2C. Both LocalFee and CountryFee have a format of percent7.2D. The data step fails execution; there is no format for LocalFee.Answer: C-------------------------------------21.Given the SAS data set WORK.PRODUCTS:ProdId Price ProductType Sales Returns------ ----- ----------- ----- -------K12S 95.50 OUTDOOR 15 2B132S 2.99 CLOTHING 300 10R18KY2 51.99 EQUIPMENT 25 53KL8BY 6.39 OUTDOOR 125 15DY65DW 5.60 OUTDOOR 45 5DGTY23 34.55 EQUIPMENT 67 2The following SAS program is submitted:data WORK.OUTDOOR WORK.CLOTH WORK.EQUIP;set WORK.PRODUCTS;if Sales GT 30;if ProductType EQ 'OUTDOOR' then output WORK.OUTDOOR;else if ProductType EQ 'CLOTHING' then output WORK.CLOTH;else if ProductType EQ 'EQUIPMENT' then output WORK.EQUIP; run;How many observations does the WORK.OUTDOOR data set contain?A. 1B. 2C. 3D. 6Answer: B-------------------------------------22.Which step displays a listing of all the data sets in the WORK library?A. proc contents lib=WORK run;B. proc contents lib=WORK.all;run;C. proc contents data=WORK._all_; run;D. proc contents data=WORK _ALL_; run;Answer: c-------------------------------------23.Which is a valid LIBNAME statement?A. libname "_SAS_data_library_location_";B. sasdata libname "_SAS_data_library_location_";C. libname sasdata "_SAS_data_library_location_";D. libname sasdata sas "_SAS_data_library_location_";Answer: C-------------------------------------24.Given the following raw data records:----|----10---|----20---|----30Susan*12/29/1970*10Michael**6The following output is desired:Obs employee bdate years1 Susan 4015 102 Michael . 6Which SAS program correctly reads in the raw data?A.data employees;infile '' dlm='*';input employee $ bdate : mmddyy10. years;run;B.data employees;infile '' dsd='*';input employee $ bdate mmddyy10. years;run;C.data employees;infile '' dlm dsd;input employee $ bdate mmddyy10. years;run;D.data employees;infile '' dlm='*' dsd;input employee $ bdate : mmddyy10. years;run;Answer: D-------------------------------------25.Given the following code:proc print data=SASHELP.CLASS(firstobs=5 obs=15);where Sex='M';run;How many observations will be displayed?A. 11B. 15C. 10 or fewerD. 11 or fewerAnswer: D-------------------------------------26.Which step sorts the observations of a permanent SAS data set by two variables and stores the sorted observations in a temporary SAS data set?A.proc sort out=EMPLOYEES data=EMPSORT;by Lname and Fname;run;B.proc sort data=SASUSER.EMPLOYEES out=EMPSORT;by Lname Fname;run;C.proc sort out=SASUSER.EMPLOYEES data=WORK.EMPSORT;by Lname Fname;run;D.proc sort data=SASUSER.EMPLOYEES out=SASUSER.EMPSORT;by Lname and Fname;run;Answer: B-------------------------------------27.Given the SAS data set WORK.TEMPS:Day Month Temp--- ----- ----1 May 7515 May 7015 June 803 June 762 July 8514 July 89The following program is submitted: proc sort data=WORK.TEMPS;by descending Month Day; run;proc print data=WORK.TEMPS; run;Which output is correct?A.Obs Day Month Temp --- --- ----- ----1 2 July 852 14 July 893 3 June 764 15 June 805 1 May 756 15 May 7B.Obs Day Month Temp --- --- ----- ----1 1 May 752 2 July 853 3 June 764 14 July 895 15 May 706 15 June 80C.Obs Day Month Temp --- --- ----- ----1 1 May 752 15 May 703 3 June 764 15 June 805 2 July 856 14 July 89D.Obs Day Month Temp--- --- ----- ----1 15 May 702 1 May 753 15 June 804 3 June 765 14 July 896 2 July 85Answer: C-------------------------------------28.Given the SAS data set WORK.P2000:Location Pop2000-------- -------Alaska 626931Delaware 783595Vermont 608826Wyoming 493782and the SAS data set WORK.P2008:State Pop2008-------- -------Alaska 686293Delaware 873092Wyoming 532668The following output is desired:Obs State Pop2000 Pop2008 Difference1 Alaska 626931 686293 593622 Delaware 783595 873092 894973 Wyoming 493782 532668 38886 Which SAS program correctly combines the data?A.data compare;merge WORK.P2000(in=_a Location=State)WORK.P2008(in=_b);by State;if _a and _b;Difference=Pop2008-Pop2000;run;B.data compare;merge WORK.P2000(rename=(Location=State))WORK.P2008;by State;if _a and _b;Difference=Pop2008-Pop2000;run;C.data compare;merge WORK.P2000(in=_a rename=(Location=State)) WORK.P2008(in=_b);by State;if _a and _b;Difference=Pop2008-Pop2000;run;D.data compare;merge WORK.P2000(in=_a) (rename=(Location=State)) WORK.P2008(in=_b);by State;if _a and _b;Difference=Pop2008-Pop2000;run;Answer: C-------------------------------------29.The following SAS program is sumbitted:data ;infile 'DATA';input @1 Company $20. @25 State $2. @;if State=' ' then input @30 Year;else input @30 City Year;input NumEmployees;run;How many raw data records are read during each iteration of the DATA step?A. 1B. 2C. 3D. 4Answer: A-------------------------------------30.You're attempting to read a raw data you see the following messages displayed in the SAS Log:NOTE: Invalid data for Salary in line 4 15-23.RULE: ----+----1----+----2----+----3----+----4----+----5--4 120104 F 46#30 11MAY1954 33Employee_Id=120104 employee_gender=F Salary=. birth_date=-2061 _ERROR_=1 _N_=4NOTE: 20 records were read from the infile 'c:\employees.dat'.The minimum record length was 33.The maximum record length was 33.NOTE: The data set WORK.EMPLOYEES has 20 observations and 4 variables. What does it mean?A. A compiler error, triggered by an invalid character for the variable Salary.B. An execution error, triggered by an invalid character for the variable Salary.C. The 1st of potentially many errors, this one occurring on the 4th observation.D. An error on the INPUT statement specification for reading the variable Salary.Answer: B------------------------------------------------------------------31. Given the following raw data records in DATA:----|----10---|----20---|----30Kim,Basketball,Golf,TennisBill,FootballTracy,Soccer,TrackThe following program is submitted:data WORK.SPORTS_INFO;length Fname Sport1-Sport3 $ 10;infile 'DATA' dlm=',';input Fname $ Sport1 $ Sport2 $ Sport3 $;run;proc print data=WORK.SPORTS_INFO;run;Which output is correct based on the submitted program?A.Obs Fname Sport1 Sport2 Sport31 Kim Basketball Golf Tennis2 Bill Football3 Tracy Soccer TrackB.Obs Fname Sport1 Sport2 Sport31 Kim Basketball Golf Tennis2 Bill Football Football Football3 Tracy Soccer Track TrackC.Obs Fname Sport1 Sport2 Sport31 Kim Basketball Golf Tennis2 Bill Football Tracy SoccerD.Obs Fname Sport1 Sport2 Sport31 Kim Basketball Golf Tennis2 Bill FootballAnswer: C------------------------------------------------------------------32.Consider the following data step:data WORK.NEW;set WORK.OLD;Count+1;run;The variable Count is created using a sum statement. Which statement regarding this variable is true?A. It is assigned a value 0 when the data step begins execution.B. It is assigned a value of missing when the data step begins execution.C. It is assigned a value 0 at compile time.D. It is assigned a value of missing at compile time.Answer: C------------------------------------------------------------------33.The following SAS program is submitted:data WORK.TEST;set WORK.PILOTS;if Jobcode='Pilot2' then Description='Senior Pilot';else Description='Unknown';run;The value for the variable Jobcode is: PILOT2.What is the value of the variable Description?A. PILOT2B. UnknownC. Senior PilotD. ' ' (missing character value)Answer: B------------------------------------------------------------------34.A user-defined format has been created using the FORMAT procedure.How is it stored?A. in a SAS catalogB. in a memory resident lookup tableC. in a SAS dataset in the WORK libraryD. in a SAS dataset in a permanent SAS data libraryAnswer: AThese formats must be stored in the WORK.FORMATS or SASUSER.FORMATS catalog------------------------------------------------------------------35.given the SAS data set SASDATA.TWO:X Y-- --5 23 15 6The following SAS program is submitted:data SASUSER.ONE SASUSER.TWO OTHER;set SASDATA.TWO;if X eq 5 then output SASUSER.ONE;if Y lt 5 then output SASUSER.TWO;output;run;What is the result?A.data set SASUSER.ONE has 5 observationsdata set SASUSER.TWO has 5 observationsdata set WORK.OTHER has 3 observationsB.data set SASUSER.ONE has 2 observationsdata set SASUSER.TWO has 2 observationsdata set WORK.OTHER has 1 observationsC.data set SASUSER.ONE has 2 observationsdata set SASUSER.TWO has 2 observationsdata set WORK.OTHER has 5 observationsD. No data sets are output. The DATA step fails execution due to syntax errors. Answer: A------------------------------------------------------------------36.Given the contents of the raw data file 'EMPLOYEE.TXT':----+----10---+----20---+----30--Xing 2 19 2004 ACCTBob 5 22 2004 MKTGJorge 3 14 2004 EDUCThe following SAS program is submitted:data WORK.EMPLOYEE;infile 'EMPLOYEE.TXT';input@1 FirstName $@15 StartDate@25 Department $;run;Which SAS informat correctly completes the program?A. date9.B. mmddyy10.C. ddmmyy10.D. mondayyr10.Answer: B-------------------------------------------------------------37.The SAS data set Fed.Banks contains a variable Open_Date which hasbeen assigned a permanent label of "Open Date". Which SAS program temporarily replaces the label "Open Date" with the label "Starting Date" in the output?A.proc print data=SASUSER.HOUSES label;label Open_Date "Starting Date";run;B.proc print data=SASUSER.HOUSES label;label Open_Date="Starting Date";run;C.proc print data=SASUSER.HOUSES;label Open_Date="Starting Date";run;D.proc print data=SASUSER.HOUSES;Open_Date="Starting Date";run;Answer: B------------------------------------------------------------------ 38.Given the SAS data set WORK.ONE:X Y Z- - --1 A 271 A 331 B 452 A 522 B 693 B 704 A 824 C 91The following SAS program is submitted:data WORK.TWO;set WORK.ONE;by X Y;if First.Y;run;proc print data=WORK.TWO noobs;run;Which report is produced?A.X Y Z-- -- --1 B 452 A 522 B 693 B 704 A 824 C 91B.X Y Z-- -- --1 A 271 B 452 A 522 B 693 B 704 A 824 C 91C.X Y Z-- -- --1 A 331 B 452 A 522 B 693 B 704 A 824 C 91D. The PRINT procedure fails because the data set WORK.TWO is not created in the DATA step.Answer: B------------------------------------------------------------------39.The following SAS program is submitted:data WORK.AUTHORS;array Favorites{3} $ 8 ('Shakespeare','Hemingway','McCaffrey');run;What is the value of the second variable in the dataset WORK.AUTHORS?A. HemingwayB. HemingwaC. ' ' (a missing value)D. The program contains errors. No variables are created.Answer: B------------------------------------------------------------------40.The following SAS program is submitted:data WORK.PRODUCTS;Prod=1;do while(Prod LE 6);Prod + 1;end;run;What is the value of the variable Prod in the output data set?A. 6B. 7C. 8D. . (missing numeric)Answer: B------------------------------------------------------------------41.Given the raw data record in the :----|----10---|----20---|----30---|Stevens James SALES 304-923-3721 14The following SAS program is submitted:data WORK.PHONES;infile 'phone.txt';input EmpLName $ EmpFName $ Dept $ Phone $ Extension;<_insert_code_>run;Which SAS statement completes the program and results in a value of "James Stevens" for the variable FullName?A. FullName=CATX(' ',EmpFName,EmpLName);B. FullName=CAT(' ',EmpFName,EmpLName);C. FullName=EmpFName!!EmpLName;D. FullName=EmpFName + EmpLName;Answer: A------------------------------------------------------------------42.The following SAS program is submitted:data WORK.ONE;Text='Australia, US, Denmark';Pos=find(Text,'US','i',5);run;What value will SAS assign to Pos?A. 0B. 1C. 2D. 12Answer: D------------------------------------------------------------------43.Given the SAS data set WORK.ORDERS:WORK.ORDERSorder_id customer shipped-------- ------------ ---------9341 Josh Martin 02FEB20099874 Rachel Lords 14MAR200910233 Takashi Sato 07JUL2009The variable order_id is numeric; customer is character; and shipped is numeric, contains a SAS date value, and is shown with the DATE9. format.A programmer would like to create a new variable, ship_note, that shows a character value with the order_id,shipped date, and customer name.For example, given the first observation ship_note would have the value "Order 9341 shipped on 02FEB2009 to Josh Martin".Which of the following statement will correctly create the value and assign it to ship_note?A. ship_note=catx(' ','Order',order_id,'shippedon',input(shipped,date9.),'to',customer);B. ship_note=catx(' ','Order',order_id,'shippedon',char(shipped,date9.),'to',customer);C. ship_note=catx(' ','Order',order_id,'shippedon',transwrd(shipped,date9.),'to',customer);D. ship_note=catx(' ','Order',order_id,'shippedon',put(shipped,date9.),'to',customer);Answer: D------------------------------------------------------------------44.The following SAS program is submitted:data ONE TWO SASUSER.TWOset SASUSER.ONE;run;Assuming that SASUSER.ONE exists, how many temporary and permanent SAS data sets are created?A. 2 temporary and 1 permanent SAS data sets are createdB. 3 temporary and 2 permanent SAS data sets are createdC. 2 temporary and 2 permanent SAS data sets are createdD. there is an error and no new data sets are createdAnswer: D------------------------------------------------------------------45.The following SAS program is submitted:ods csvall file='c:\test.cvs';proc print data=WORK.ONE;var Name Score Grade;by IdNumber;run;ods csvall close;What is produced as output?A. A test.cvs that can only be opened in Excel.B. A text test.cvs that can be opened in Excel or in any text editor.C. A text test.cvs that can only be opened in a text editor.D. A test.cvs that can only be opened by SAS.Answer: C------------------------------------------------------------------46.Given the SAS data set WORK.ONE:Obs Revenue2008 Revenue2009 Revenue2010--- ----------- ----------- -----------1 1.2 1.6 2.0The following SAS program is submitted:。

SAS应用基础3-1

SAS应用基础3-1
9
FORMAT过程选项 FORMAT过程选项
◎PROC FORMAT语句表示开始自定义变量的格式 FORMAT语句表示开始自定义变量的格式 常用选项有: 常用选项有:
CNTLIN=数据集 指定数据集保存输入格式的控制信息; CNTLIN=数据集 指定数据集保存输入格式的控制信息; CNTLOUT=数据集 指定数据集保存输出格式的控制信息; CNTLOUT=数据集 指定数据集保存输出格式的控制信息; LIBRARY=库标识 LIBRARY=库标识 设定存储输入输出格式控制的数据集 所在的SAS 数据库标识 数据库标识. 所在的 SAS数据库标识. 该选项用于建立永久性输入输 出格式, 使用前应先LIBNAME 语句将具体的文件夹和 出格式 , 使用前应先 LIBNAME语句将具体的文件夹和 数据库标识关联起来. 数据库标识关联起来. 注意: 注意:要确保顺利使用存储在某个库中的格式 ,应设置系 统选项FMTSEARCH FMTSEARCH: 统选项FMTSEARCH: OPTIONS FMTSEACH=(库名1 库名2 …); FMTSEACH=(库名 库名2 库名1
7
转置数据集示例
data score; score; name$ math@@; input name$ chinese english math@@; cards; cards; zhao 67 76 74 qian 89 78 92 sun 88 76 90 li 93 85 82 wang 78 64 72 xu 90 94 77 print; proc print; transpose; proc transpose; name; /*用姓名来作为新数据集的变量名 用姓名来作为新数据集的变量名* id name; /*用姓名来作为新数据集的变量名*/ print; proc print; run; run;

sas考试题库及答案

sas考试题库及答案

sas考试题库及答案1. 在SAS中,如何使用`proc print`步骤来输出数据集的前几行?A. 使用`proc print data=dataset;`命令B. 使用`proc print data=dataset firstobs=5;`命令C. 使用`proc print data=dataset first=5;`命令D. 使用`proc print data=dataset top;`命令正确答案是B。

2. 如果想要在SAS中创建一个数据集,并将某个变量的值替换为缺失值,应该如何操作?A. 使用`data`步骤和`if`语句B. 使用`data`步骤和`replace`函数C. 使用`proc sql`步骤D. 使用`proc means`步骤正确答案是A。

3. 在SAS中,如何将一个数据集的列名从`Var1`更改为`Variable1`?A. 使用`rename`语句:`rename Var1=Variable1;`B. 使用`rename`语句:`rename Variable1=Var1;`C. 使用`proc contents`步骤D. 使用`proc print`步骤正确答案是A。

4. 如何在SAS中使用`proc means`步骤来计算数据集的描述性统计量?A. 使用`proc means data=dataset;`命令B. 使用`proc means data=dataset N NMISS MEAN MEDIAN MAX MIN;`命令C. 使用`proc means data=dataset out=means;`命令D. 使用`proc means data=dataset out=means N NMISS MEAN MEDIAN MAX MIN;`命令正确答案是D。

5. 在SAS中,如何使用`proc sort`步骤对数据集进行排序?A. 使用`proc sort data=dataset;`命令B. 使用`proc sort data=dataset out=sorted_dataset;`命令C. 使用`proc sort data=dataset by variable;`命令D. 使用`proc sort data=dataset out=sorted_dataset by variable;`命令正确答案是D。

sas试题A

sas试题A

考生注意:舞弊万莫做,那样要退学,自爱当守诺,最怕错上错,若真不及格,努力下次过。

开 试题成绩课程名称 应用统计软件(A ) 考试时间 年 11月19日8时 00分至10时 00分 教 研 室 统计 开卷 闭卷 适用专业班级 统计061 提前 期末 班 级 姓名 学号一、填空题(每空1分,共20分):1.SAS 的三个基本窗口是 , 及 。

2.SAS 程序每一数据步以 开始,而过程步以 开始,整个程序以 语句结束。

3.每个语句常以开始的关键词称呼,用 表示语句的结束。

4.运行存在错误的程序后,在 窗口中会出现红色错误提示;可通过按 键或在命令栏中发布 命令或从 菜单中选Recall Last Submit ,将程序重新调入PGM 窗口进行修改。

5.调用SAS/INSIGHT 可在命令行中键入命令 。

6.SAS/INSIGHT 的功能主要有:通过多窗口连动的图象和分析结果,对数据进行探索;分析 分布;用 和 研究多变量间的关系;用 和 说明、拟合变量间关系的模型。

7.调用分析员应用可在命令行中键入命令 。

8.分析员通过选择 的不同选项可完成各种基本分析功能和绘图功能;完成每项任务后,能立即显示相应的结果,而且保留相应的 ;在分析过程中可随时调出有关的图形和结果进行显示。

----------------------------------------------------------------------装--------------------订--------------------线-------------------------------------------------------------试 题 共 3 页 第 1 页run;A. d:\B. d:\sasdataC.c:\D.不确定 4.下列程序读入外部文件的模式是( )Data dst; Infile 'd:\lecsas\basev8\dst\imptdt01.dat' firstobs=2 obs=3; Input ID Age Actlevel $ Sex $; Run;A. 按列输入模式B.格式化输入模式C.列举输入模式D.其它模式 5.列举模式读入分隔符缺省为( )A.Tab 键B.逗号C.空格符D.任意符号都可以 6.提交下列SAS 程序,那种说法是正确的( )proc sort data = work.test; by fname descending salary; run;A. 数据集work.test 先按照fname 降序排列,再按照salary 降序排列B. 数据集work.test 先按照fname 升序排列,再按照salary 降序排列C. 数据集work.test 先按照salary 降序排列,再按照fname 降序排列D. 数据集work.test 先按照salary 降序排列,再按照fname 升序排列 7.提交下列程序,得到的回归方程为( ) data tem; set sasuser. admit; a2=age*age; a3=a2*age;a4=a3*age;run;proc glm data=tem;model fee=age a2 a3 a4/ss1; run;A .fee=age+b1*age 2+b2*age 3+b3*age 4命题负责人: 教研室主任:。

江西财经大学SAS软件技能测试试题二 (2)

江西财经大学SAS软件技能测试试题二 (2)

江西财经大学SAS软件技能测试试题二一、填空题(每小题2分,共20分。

)1.在SAS程序中,每一个完整的SAS语句都是以()号结束的。

2.创建SAS数据集用()步。

3.SAS软件使用()窗口可以显示、修改、设置并存储SAS参数设置。

4.TITLES窗用以显示和让用户指定打印输出各页顶端的标题,共可以指定()个标题。

5.DATA步建立SAS数据集时,常使用INPUT语句指定将要输入的变量及其类型。

在指定将输入()型变量时,其后应用“$”符号。

6.SAS程序是由两种步骤(STEP)组成:它们是()步和()步。

7.在SAS程序中,经常要选择观测。

我们可以用选项()保留原数据集中的观测,用选项()删除原数据集中的观测。

8.INPUT语句中常用的数据读入的方式有四种。

其中有一方式是()方式,它可以使字符型变量值中含有空格。

二、简答题(每小题10分,共20分)1.SAS系统软件有哪三个基本窗口?各有什么功能?2.请回答PUT语句、OUT和OUTPUT语句的作用。

1.试列举几种用SAS系统可以制作的统计图形,并回答在编程时各自用什么语句(或过程)或选项?2.DATA步中的INPUT语句有哪四种输入格式?3.请回答FILE和INFILE语句的作用。

3.三、编程或写出程序的运行结果(共60分)1.(10分)试用DATA步编辑一SAS数据集mydir.hw。

数据库mydir对应的路径是“c:\”。

要求按照下面的结果输出。

说明该数据集中有4个变量名分别为SEX、JOBCODE、FLIGHTS和DATE,其中SEX和JOBCODE是字符型变量,DATE 为日期型变量。

THIS IS A SAS_DATASET ABOUT FLIGHTSSEX JOBCODE FLIGHTS 日期F FA3 32886 01MAR99M FA2 28572 01MAR99F FA3 33104 02MAR99M FA3 32217 01MAR99F FA3 33419 04MAR99F FA2 28888 05MAR99F FA2 27787 08MAR99F FA1 23177 09MAR99F FA1 22454 03MAR99M FA1 22268 06MAR99M FA2 27808 07MAR99M FA2 27265 04MAR992.(续第1题,按要求写出过程)(15分)试用SET语句调用第1题的数据集mydir.hw 。

sas复习题答案

sas复习题答案

sas复习题答案SAS复习题答案随着数据分析技术的快速发展,SAS(统计分析系统)成为了许多企业和研究机构中最受欢迎的数据分析工具之一。

SAS能够处理大规模数据集,进行数据清洗、统计分析、建模和预测等工作。

然而,要掌握SAS并不容易,需要不断的学习和实践。

在这篇文章中,我将为大家提供一些SAS复习题的答案,希望能够帮助大家更好地掌握这一强大的数据分析工具。

1. 什么是SAS?SAS是一种用于数据管理和分析的软件套件。

它提供了一系列功能强大的工具,包括数据清洗、统计分析、数据可视化和建模等。

SAS具有高度的灵活性和可扩展性,可以处理大规模的数据集,并提供高质量的分析结果。

2. 如何导入数据集?在SAS中,可以使用PROC IMPORT语句来导入数据集。

例如,要导入一个名为"data.csv"的CSV文件,可以使用以下代码:```PROC IMPORT DATAFILE='data.csv'OUT=work.dataDBMS=csvREPLACE;GETNAMES=YES;RUN;```这段代码将把"data.csv"文件导入到名为"work.data"的SAS数据集中。

3. 如何删除重复观测值?要删除SAS数据集中的重复观测值,可以使用PROC SORT和DATA步骤来完成。

以下是一个示例代码:```PROC SORT DATA=work.data NODUPKEY;BY var1 var2;RUN;```这段代码将根据"var1"和"var2"两个变量的值对数据集进行排序,并删除重复的观测值。

4. 如何计算变量的平均值?要计算SAS数据集中变量的平均值,可以使用MEANS过程。

以下是一个示例代码:```PROC MEANS DATA=work.data;VAR var1 var2 var3;OUTPUT OUT=work.mean_data MEAN=;RUN;```这段代码将计算"var1"、"var2"和"var3"三个变量的平均值,并将结果存储在名为"work.mean_data"的SAS数据集中。

SAS应用基础1 SAS软件应用基础之一 SAS系统简介

SAS应用基础1 SAS软件应用基础之一 SAS系统简介
Base SAS是SAS系统的基础,既可以单独 使用,也可以与其它模块组成一个用户化的 SAS系统;其它模块必须与之结合起来使用。
6
数据分析核心
这一部分是SAS系统的灵魂,也是SAS与其 它软件的本质性区别;属于这一部分的主要模 块有:
SAS/ETS、SAS/IML、SAS/INSIGHT、 SAS/OR、SAS/QC和SAS/STAT等。
18
SAS 程序
SAS 系统提供了编辑SAS 程序解决问题和使用无需编 程的SAS 模块解决问题两种方式。
SAS 程序就是用户运用SAS 语言编辑而成的,在SAS 系统下可以运行的一段程序。
SAS 程序通常可包含有:数据步(SAS DATA STEP)和 过程步(SAS PROCEDURE STEP)两类过程。
输出窗口: 可以浏览提交的SAS 程序的输出结果。 在默认情况下,输出窗口是被隐藏在编辑窗口和日 志窗口下方的;当系统产生输出结果的时候,它就 被自动放在最上层。
13
SAS主要窗口(续二)
结果窗口: 结果窗口可以使用户方便地查找、管理运行的 SAS 程序的结果。 可以对每个结果进行浏览、保存、打印等操作。 在默认情况下,结果窗口被放置在资源管理器 窗口的后面;直到提交的程序产生结果的时候, 它才被放置在上面。
14
SAS 主要菜单功能
File 、Edit、View、Tools、Windows、Help菜 单的内容与其他应用软件大同小异,功能相似。
Solutions 、Run菜单体现了SAS的特色和主要功 能。
15
Run 菜单主要内容
Submit: 提交程序。 Recall Last Submit: 返回上一次提交的程序。 Sign on: 在本地SAS 进程和远程SAS 进程之间

SAS参考答案

SAS参考答案

SAS参考答案SAS参考答案在当今信息爆炸的时代,人们对于获取知识的需求也越来越迫切。

无论是学生们的功课辅导,还是企业中的数据分析,都需要一种高效而可靠的工具来帮助他们解决问题。

而SAS(Statistical Analysis System)作为一种全球领先的数据分析软件,提供了一系列强大的功能和工具,为用户提供了解决问题的参考答案。

SAS作为一种统计分析软件,可以帮助用户处理和分析大规模的数据集。

它提供了一套完整的数据处理和分析工具,包括数据清洗、数据管理、数据可视化、统计分析等功能。

无论是学术研究还是商业决策,SAS都可以为用户提供准确和全面的数据分析结果。

首先,SAS在数据清洗方面发挥着重要作用。

数据清洗是数据分析的第一步,它涉及到对数据进行筛选、去重、填充缺失值等操作,以确保数据的准确性和完整性。

SAS提供了丰富的数据处理函数和语句,可以帮助用户快速清洗数据,减少错误和噪声的干扰,从而得到更可靠的分析结果。

其次,SAS在数据管理方面也具备强大的功能。

在处理大规模数据集时,数据管理变得尤为重要。

SAS提供了灵活的数据存储和查询方式,可以高效地管理和检索数据。

用户可以通过SAS的数据集和数据视图来组织和管理数据,同时还可以使用SQL语句进行复杂的数据查询和操作。

这些功能使得用户能够轻松地处理和管理庞大的数据集,提高工作效率。

此外,SAS还具备出色的数据可视化能力。

数据可视化是将数据转化为图表、图形等可视化形式,以便用户更好地理解和分析数据。

SAS提供了多种数据可视化工具,如图形绘制、统计图表生成等,用户可以根据自己的需求选择合适的可视化方式。

通过直观的数据可视化,用户可以更清晰地把握数据的规律和趋势,从而做出更准确和有针对性的决策。

最后,SAS作为一种统计分析软件,自然也具备强大的统计分析能力。

无论是描述性统计还是推断性统计,SAS都可以提供全面而准确的分析结果。

它支持各种统计方法和模型,如回归分析、方差分析、聚类分析等,用户可以根据自己的需求选择合适的方法进行分析。

SAS综合练习题的答案

SAS综合练习题的答案

S A S金融数据处理综合练习题1.创建一包含10000个变量X1-X10000,100个观测值的SAS数据集;分别用DATA步,DATA步数组语句和IML过程实现;1用data步实现data test1a;informat x1-x10000 9.2; /创建100个变量,规定输出格/do i=1to100; /做循环/output;/每一次循环,输出所有的变量,包括i/drop i;/去掉i/end;run;或者data test1a;format x1-x10000 best12.; /创建10000个变量x1-x10000,但未有初始化/do i=1to100; /创建100个观测/output;/且每一个观测都输出到数据集test1a/end;drop i;run;2用data步数组语句实现data test1b;array t{10000} x1-x10000 ;/创建数组变量/do i =1to100;/每个变量有100个观测/output;/每一次循环,输出所有的变量,包括i/drop i;/去掉i/end;/循环结束/data test1c;array t{10000} x1-x10000;do j=1to100;/100次观测的循环/do i = 1to10000;t{i}=i;/第i个变量等于i/end;output;/输出第i次观测的i个变量的值/end;drop i j;/去掉i和j/run;或者data test1b;array t{10000} x1-x10000;do j=1to100;/100次观测的循环/do i = 1to10000;t{i}=i;/第i个变量等于i/end;output;/输出第i次观测的i个变量的值/end;drop i j;/去掉i和j/run;3用IML过程实现proc iml;/启用iml环境/x='x1':'x10000';/定义数组x1-x10000/t= j100,10000,1 ;/创建100行10000列的. 同元素矩阵/print t x;/打印两个矩阵察看/create test1d from tcolname=x;/创建数据集c,变量数为列数 ,观测数为行数,列名更改为变量名,默认逻辑库为临时/append from t; /将t中的值填充的数据集中/show datasets;show contents;/显示数据集的一些7788的属性/close test1d;run;quit;或者proc iml;x='x1':'x10000';t= shape1,100,10000 ;/shape和j不太一样,顺序是元素,行,列,j的顺序为行,列,元素/print t x;create test1d from tcolname=x;append from t;show datasets;show contents;close test1d;run;quit;4用宏实现%macro namesname,number,obs;data a;%do i=1%to &obs;%do n=1%to &number;&name&n=1;%end;output;%end;run;%mend names;%names x, 10000,100;2.多种方法创建包含变量X的10000个观测值的SAS数据集;3.数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填充开始到结束日之间的所有日期值;proc iml;/启用iml环境/x= {'date' price};/注意所用的括号类型/t= {11112,23412,21323,12345,123456,34566,67534,23457,21349};print t;/构造9行2列的向量/t1,1=.;t2,1=.;t5,1=.;t9,1=.;/令某些date的观测成为缺失值,包括第一个观测值/create a from tcolname=x;/从矩阵构造数据集a,为变量命名date和price /append from t; /填充矩阵已有的观测值 /show datasets;show contents;/显示一些信息,可省略/close a;run;quit;/退出iml环境 /data a;set a;format date yymmdd8.2;/将数值型的改变为日期型的输出变量/run;data a1;set a ;n=_n_;/取出观测号,以方便进行排序 /format date yymmdd8.2;retain temp;/设定一个变量temp,规定如果没有新的观测读入,不清空原值,保留原来的观测值/if date^=.then temp=date;/如果读入的date的观测值不为空 /else date=temp;run;/至此数据集填充了后面的部分,最之前的缺失值未能填充,后面将数据集逆序排列进行填充/ data a2;n=_n_;/创建数据集c,取出c的观测号,以方便进行逆向排序/set a1;run;proc sort data=a2;by descending n;/将c逆向排序/run;data a3;/定义数据集d,填充数据集d的末尾的观测/set a2 ;drop n temp;run;data a4 ;set a3;retain temp;if date^=.then temp=date;else date=temp;run;data a4;n=_n_;set a4;run;proc sort data=a4 out=bdrop=n temp;by descending n;/定义数据集e,将d中的观测最一次逆序,得到原序/run;以下是助教的做法但是无法运行成功proc sort data=a;by date;data bdrop=date;set a end=end;by date;retain start;if _n_=1then start=date;if _n_=end then do;last=date;output;end;run;data bkeep=date;informat date yymmdd10.;format date yymmdd10.;set b;do date=start to last;output;end;run;4.创建包含日期变量DATE的SAS数据集,日期值从1900年1月1日到2000年1月1日;data test4a;informat date 9.2 x y;format date yymmdd10.2;/规定输出格式/x=mdy'1','1','1900';/返回sas日期值,即以1960/1/1为0的日期值/y=mdy'1','1','2000';do i= x to y;date=i;output;end;drop i x y;run;或者data test4b;do date='1jan1900'd to'1jan2000'd;output;end;format date yymmdd10.;run;5.利用随机数函数RANUNI对某数据集设计返回抽样方案;data sampledrop =samplesize n;samplesize=5; /样本容量为5/do n=1to samplesize; /从1到样本容量的循环/readit=ceilranuni0totobs;put readit=;set resdat.class point=readit nobs=totobs;output;end;stop;run;或者data dat1;set resdat.class;keep name;run;%macro samplei;data dat2;set dat1 nobs=nobs;ran=ceilnobsranuni&i;run;proc sort data=dat2;by ran;run;%mend samplei;%sample2;data dat3;set dat2;if _n_<=6;run;%sample3;data dat4;set dat2;if _n_<=6;run;%sample5;data dat5;set dat2;if _n_<=6;%sample30;data dat6;set dat2;if _n_<=6;run;data a;set dat3 dat4 dat5 dat6;run;或者data a;set resdat.class;keep name;run;data b;set a nobs=nobs;ran=ceilnobsranuni2007;run;proc sort data=b;by ran;data c;set b;if _n_<=5;run;6.利用随机数函数RANUNI对某数据集设计不返回抽样方案;data a;set resdat.class;keep name;run;data b;set a nobs=nobs;ran=ceilnobsranuni1;put ran=;run;proc sort data=b;by ran;data c;set b;if _n_<=15;run;或者data a;set resdat.class;keep name;run;data b;set a nobs=nobs;ran=ceilnobsranuni2007;run;proc sort data=b;by ran;data c;set b;if ran=lagran then delete;run;data d;set c;if _n_<=15;run;7.计算数据集A中变量X的累乘;proc iml;x='x';m=do1,10,0.5;t=tm;print m t;create a from tcolname=x ;append from t;quit; /用IML生成数据集a/data b;set a;retain y 1;y=yx;run;或者data a;input x;y=yx;retain y 1;cards;1234;run;8.如何改变一个SAS数据集的变量顺序data akeep=name bkeep=age ckeep=weight dkeep=height;set resdat.class;run;data test8a;merge b d c a;run;或者data test8b;format height weight age name;set resdat.class;run;9.数据集A和B包含同样两变量DATE和PRICE,以DATE为标识变量合并数据集A和B为C;合并时应该注意什么在合并前必须先排序,并且merge a b; by date;与merge b a; by date;结果不一样;proc sort data=a;by date;run;proc sort data=b;by date;run;data c;merge a b;by date;run;10.给下段程序的主要语句加注释;STOP语句能否删除为什么data a; /创建数据集a/do obsnum=1to last by20; /做循环,从第一个观测到最后一个观测数,间隔20/set ResDat.stk000001 point=obsnum nobs=last; /指针选项和观测总数选项/output;/强制输出当前值,否则只会在最后输出现值/end;/命令选换结束/stop;/强制结束数据步,因为set语句在数据步程序中会反复执行数据步的程序直到遇到文件结束最后一跳观测的标志,这里使用了指针选项可能碰不到这种标志,所以要用stop,否则就有可能无休止地执行下去/run;11.假设数据集A中的变量logdate为如下形式的字符格式:1998-12-21999-8-61999-8-10将其转换为日期格式变量date;如果字符格式的数据为:199812021999080619990810又怎样转换为日期格式变量;data a;input logdate $ 10.;cards;1998-12-21999-8-61999-8-10;run;data b;set arename=logdate=date;date=inputdate,yymmdd10.;label date= '日期';run;或者data a;input logdate $9.;cards;1998-12-21999-8-61999-8-10;run;data b;format date yymmdd10.; /规定输出格式/set a;date=inputlogdate,yymmdd10.; /转变格式/drop logdate;run;12.运行SAS程序过程中,SAS系统创建的自动变量是否包含在创建的数据集一般情况下,怎样查看系统自动变量的值自动变量是由数据步语句自动创建的,这些自动变量不输出到数据集中,在重复过程中被保留;data a;set resdat.class;put _n_ _error_;keep _numeric_;run;13.SAS系统显示表达式、函数、数据集、数组或矩阵的具体值时,常需要哪些语句和过程put; proc print ; print ;show ;list;14.写出下面各段程序创建数据集的所有观测值,并指出PUT语句分别在LOG窗口输出什么结果data a1;do n=1 to 5;end;put n=;run;数据集a1中有一个变量n,5个观测值为1-5,日志窗口输出n=6;data a1;do n=1 to 5;output;put n=;end;put n=;run;数据集中有一个变量n,5个观测为1-5,日志窗口输出n=1-n=6data a1;do n=1 to 5;put n=;end;put n=;run;数据集中有一个变量n,只有一个观测值6,日志窗口输出n=1-n=6data a1;do n=1 to 5;end;put n=;run;数据集中有一个变量n,只有一个观测值6,日志窗口输出n=6data a2;n=1;do untiln>=5;n+1;output;end;put n=;run;数据集中有一个变量,4个观测,n=2-n=5,日志窗口输出n=5 data a3; n=1; do whilen<5; n+1; output; end; put n=;run;同上一题一样的情况,数据集中有一个变量,4个观测,n=2-n=5,日志窗口输出n=5 data a4;n=7;do untiln>=5;n+1;output; end; put n=; run;数据集中有一个观测,n=8,日志窗口n=8;因为执行了一次数据步 data a5; n=7; do whilen<5; n+1; output; end; put n=; run;数据集中一个变量n,没有观测,日志窗口n=715. 数据集A 有一个变量n,5个观测值1,2,3,4,5;数据A1由下面程序2产生,同样有一个变量n,5个观测值1,2,3,4,5;试分析下面两段程序中,PUT 语句在Log 窗口输出结果的差异,为什么 程序1: Data a; Set a; Put n=; Run;在日志窗口中输出n=1-n=5 程序2: data a1; do n=1 to 5; output; end; put n=; run;在日志窗口中输出n=6理解了set 语句就不难得到这个结果;data a;do n=1 to 5; output ; end ; run ; Data a; Seta; Put n=; Run ; data a1; do n=1 to 5; output ; end ;put n=;run;16.试由以下的9种德国马克对美元汇率看跌期权和9种英镑对美元汇率的看跌期权产生81种组合;一年期,DM/USD汇率的9种不同看跌期权的执行价格和成本执行价格Kdm 成本Cdm0.66 0.0858550.65 0.0321910.64 0.0207950.63 0.0170010.62 0.0137110.61 0.0108510.60 0.0083880.59 0.0062910.55 0.001401一年期,BP/USD汇率的9种不同看跌期权的执行价格和成本执行价格Kbp 成本Cbp1.30 0.1372131.25 0.0826451.20 0.0450601.15 0.0283481.10 0.0161461.05 0.0078601.00 0.0032770.95 0.0011340.90 0.000245创建样本数据集:data dm;input Kdm Cdm;cards;0.66 0.0858550.65 0.0321910.64 0.0207950.63 0.0170010.62 0.0137110.61 0.0108510.60 0.0083880.59 0.0062910.55 0.001401;run;data bp;input Kbp Cbp;cards; 1.30 0.137213 1.25 0.082645 1.20 0.045060 1.15 0.028348 1.10 0.016146 1.05 0.007860 1.00 0.003277 0.95 0.001134 0.90 0.000245 ; run;解答:data test16a;set dm; /依次读入数据集dm 中的第1至9个观测/ do j=1 to 9 ; set bp point=j;/在读入dm 的第i 个观测后,依次读入bp 中的所有观测/output ;end ; run ;或者data test16b; do i=1 to 9;set dm point=i; /依次读入数据集dm 中的第1至9个观测/ do j=1 to 9 ; set bp point=j;/在读入dm 的第i 个观测后,依次读入bp 中的所有观测/output ;end ; end ; stop ; run ;17. 不用SAS 函数,用宏%an,p 计算二项分布的概率分布和累计概率k=1,2……,n;()(1)k n k n P X k p p k -⎛⎫==- ⎪⎝⎭;此处留有空白18. 创建组标识变量GROUP,将数据集A 中的观测等分为10组,观测值不能整除10时,前余数组各多加一个观测值; data a; n=_n_;retain groupid 0;set test nobs=totobs;/选项nobs 观测的总数,赋值给totobs/ x=modtotobs,10;/观测个数除以10的余数/ y=inttotobs/10;/观测个数除以10的整数/data a;set a nobs=totobs;if n>0 and n=<y+1x thengroupid= intn-1/y+1+1;/前x组的号码/elsegroupid= intn-x-1/y+1;/不多元素的组号/drop x y;run;19.现有一个数据流:a 2 b 3 c d 4 6,按下面要求创建SAS数据集;用语句input id $ no; 变量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6;但是这个数据流存在问题:如有的id没有no,有的no没有id;创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a 2, b 3与d 4;data b;input no $ ;id=lagno;cards;a 2b 3cd 4 6;run;data d;format id $8. no $8.;set b;if'a'<=no<='z' or '1'<=id<='9'then lostcard;run;或者data a;input t$; /指针/cards;a 2b 3cd 4 6;data a;set a;retain;if'a'<=lowcaset<='z'then id=t;/ 如果是字符串,则用专门的函数判断 /else do;no=inputt,8.;output;no=.;end;drop t;proc sort;by id ;data a;set a;if first.id;run;或者data a;input t$;cards;a 2b 3cd 4 6;data b;set a;id=lagt;no=t;if'a'<=id<='z' and '0'<=no<='9'then output;drop t;run;20.现有一个数据流:a23 223 bc4 36 3c5 11d 400 620,按下面要求创建SAS数据集;用语句input id $ no; 变量id取值上面数据流里的a23, bc4, 11d ,变量no取值233,36,400;但是这个数据流存在问题:如有的id没有no,有的no没有id;创建SAS数据集,删除只有id没有no或者只有no没有id 的观测,即把上面的3c5和620去掉,最后得到三个观测:a23 223bc4 3611d 400data a;input t$;cards;a23 223 bc4 36 3c5 11d 400 620;data b;set a;isno=1;do i=1to lengtht;if substrt,i,1<'0' or substrt,i,1>'9'then do;isno=0;return; /结束循环,返回数据步开始 /end;end;data c;set b;char=lagt;lag_isno=lagisno;number=t;if lag_isno=0 and isno=1then output;keep char number;run;或者/基本思路是先将原数据读入,然后重新按输出为一列,使用lostcard语句读取数据,思路更简洁//读入数据,重新输出为一列/data_null_;input t $ ;file'D:\a.txt';put t $;cards;a23 223 bc4 36 3c5 11d 400 620;run;/利用lostcard语句来选出正确的数据,其中no=. 说明将有非数字的字符的值读入数值变量,也就是连续的name的情况,舍去当前行,重新定位;如果idtest不为.说明读入的id是数值型的,就是连续id情况,舍去当前行,重新定位;这样就可以读出正确的数据了/data a drop=idtest;infile'D:\a.txt';input id $ / no;idtest=id+1;if no='.' or idtest ne '.'then lostcard;run;或者/方法一,基本思路:先将数据流都读入到一个字数变量中,判断如果其有字符出现,则赋值给name,否则转化为数值后赋值给id当name和id值同时不为空时认为找到了一线数据,输出对name,id都使用retain语句,输出后将前一步读入的数据清空./data a;informat temp $10.;attrib name informat=$10.format=$bel="Name";attrib id informat=best12.format=best12. lable="Id";retain name "";retain id .;/先将数据流都读入到变量temp中/input temp :$10.;/设计一个变量标记temp中的是否有字母,有值为1,否则为0,先设为零/ flg=0;/检验temp是否有字母/do i=65to90;if indexupcasetemp,bytei^=0then do;/如果发现一个字母,将flg变量值改为1,退出循环/flg=1;leave;end;end;/根据以上的判断,如果temp中有字母,将其赋值给name,如果name不为空,转换为数值型赋值给id,否则舍去/if flg=1then do;name=temp;end;else if name^=""then id=inputtemp,best12.;/如果name和id同时不为空时说明找到了一组配对的数据,输出到数据集中,清空原有的值/if name^="" and id^=.then do;output;name="";id=.;end;keep name id;cards;a23 223 bc4 36 3c5 11d 400 620;run;或者/在上述的方法中,对于连续出现的name自动用后一个覆盖前一个林而保留正确的数据,对于连续出现的数字, 通过判断是否有name与之配对而决定是否保留,从而选取出想要的数据.//上述方法可以进行两处修改和完善,一:上面的程序只是判断了字符串中是否有字母,如果有字母才认为是name但是如果字符串中有字母以外的非数字字符就会出错,比如将bc4 36 3c5 改为 bc4 3 5;此时如果将检验标准改为判断读入的字符串中是否有非数字以外的字符会更好,将:do i=65 to 90;if indexupcasetemp,bytei^=0 then do;改为:do i=1 to lengthtemp;if substrtemp,i,1<'0' or substrtemp,i,1>'9' then do;二:对于连续数字情况的去除也可以不在本步中进行,输出后name也不清空,即读入一个数据,如果是有非数字字符的就赋值给name,否则给id,如果name,id同时不为空则输出,输出后id清空,name不清空,再继续读入;对于连续的数字,就会用其前面最近出现name形成多条观测,最后再通过排序只保留每个name对应的第一个观测也可以,这种对应的程序如下:/data a;informat temp $10.;attrib name informat=$10.format=$bel="Name";attrib id informat=best12.format=best12. lable="Id";retain name "";/先将数据流都读入到变量temp中/input temp :$10.;/设计一个变量标记temp中的是否有字母,有值为1,否则为0,先设为零/ flg=0;/检验temp是否有字母/do i=65to90;if indexupcasetemp,bytei^=0then do;/如果发现一个字母,将flg变量值改为1,退出循环/flg=1;leave;end;end;/根据以上的判断,如果temp中有字母,将其赋值给name,如果name不为空,转换为数值型赋值给id/if flg=1then do;name=temp;end;else id=inputtemp,best12.;/如果name和id同时不为空时说明找到了一组配对的数据,输出到数据集中,清空原有的值/if name^="" and id^=.then do;output;id=.;end;keep name id;cards;a23 223 bc4 36 3c5 11d 400 620;run;proc sort;by name;data a;set a;by name;if ;run;或者data akeep=id no;input x $ ;id=lag1x;no=inputx,8.;/把变量x转换成数值,若遇非纯数字的值,则转成缺失值,同时日志窗口NOTE会提示转换无效,不必在意;如果数据很多,可以用系统选项把note去掉:options nonotes/y=lag1no;if y='.' and id^=' ' and no^='.';/选择观测,如果y是缺失值,但id和no不是缺失值,就是我们想要的观测/cards;a23 223 bc4 36 3c5 11d 400 620;run;21.用SAS软件作三维Hat图,x和y轴取值区间为-5,5,z = sinsqrtyy + xx;data a;do x=-5to5by0.5;do y=-5to5by0.5;z = sinsqrtyy + xx;output;end;end;run;proc g3d;plot yx=z;title'hat graph';run;鞍图形;提示:产生x, y和z的数据后,用下面的过程实现作图;proc g3d;plot yx=z;run;data a;p=20;q=1;do x=-9to9by0.1; /从-9到9每距离0.1取一个点/do y=-3to3by0.1;z=-x2/p+y2/q; /创建马鞍图的数学公式/output;end;end;drop p q;run;proc g3d; /用g3d作图/plot yx=z;run;23.数据集Calendar只有日期变量,test包含股票代码、日期与收盘价三个变量;合并两个数据集,用Calendar中的日期数据替代test数据集中每只股票的日期数据;创建样本数据集:data calendar;input Date yymmdd10.;format Date yymmdd10.;cards;2003-1-202003-1-212003-1-222003-1-232003-1-242003-1-272003-1-282003-1-292003-1-302003-1-312003-2-32003-2-42003-2-52003-2-62003-2-72003-2-8;run;data test;infile datalines missover ;informat Stkcd $6. Date yymmdd10. Clpr 8.2; input Stkcd $ Date Clpr;format Stkcd $6. Date yymmdd10. Clpr 8.2; cards;600000 2003-1-20 9.94600000 2003-1-22 9.66600000 2003-1-24 9.88600000 2003-1-27 10.07600000 2003-1-28 10.17600000 2003-1-29 10.31600000 2003-2-4 10.31600000 2003-2-5 10.13600001 2003-1-20 8.13600001 2003-1-21 8.14600001 2003-1-22 8.17600001 2003-1-23 8.40600001 2003-1-24 8.65600001 2003-1-31 8.93600001 2003-2-4 9.02600001 2003-2-5 8.63600002 2003-1-31 2.25600002 2003-2-3 2.26600002 2003-2-4 2.35600002 2003-2-6 2.55600002 2003-2-8 2.12;run;proc sort data=calendar;by date;run;proc sort data=test;by date;run;data a;merge test calendar;by date;run;24.当股票的分配事件分两次完成,且第一次分配在节假日或该股票的停牌日,第二次分配在下一个交易日时,一般的数据库会有如下表所示的观测值存贮方式;写程序将停牌日即没有收盘价的那个观测值中的分配事件合到下一个观测中;注:…表示有数据值,.表示缺失值;编程变量名参考:股票代码Stkcd日期Date收盘价Clpr送股比例Stkdrate转增比例Capissurate配股比例Rigoffrate配股价Rigoffpr增发比例Snirate增发价格Snipr现金红利Dividend创建样本数据集:data a;input Stkcd Date yymmdd8. Clpr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;format Date mmddyy8.;cards;600001 01-01-01 8 . . . . . . .600001 01-01-02 . 0.3 0.3 0 0 0 0 0600001 01-01-03 9 0 0 0.5 0.2 0 0 0.1600002 01-01-02 10 0 0 0 0 0 0 0600002 01-01-03 . 0.2 0.3 0.5 0 0 0.1 0.2600002 01-01-04 12 0 0 0 0.2 0.3 0.5 0.6;run;第一种做法中变量名成为旧名称,可改为题中设定的相应名称;data test;input hstkcd Dt yymmdd8.Closepr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;format Dt mmddyy8.;cards;600001 01-01-01 8 . . . . . . .600001 01-01-02 . 0.3 0.3 0 0 0 0 0600001 01-01-03 9 0 0 0.5 0.2 0 0 0.1600002 01-01-02 10 0 0 0 0 0 0 0600002 01-01-03 . 0.2 0.3 0.5 0 0 0.1 0.2600002 01-01-04 12 0 0 0 0.2 0.3 0.5 0.6;run;proc sort data=test;/排序原数据集/by hstkcd dt;run;data p17 keep=Hstkcd Dt Closepr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;/只保留原数据集中的变量/set test;array origin{0:7} closepr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;/为处理方便,创建数组/array lagn{0:7} lag0-lag7;/创建另一个数组/lagcd=lag1hstkcd;/为防止分配数据不全的情况,下面有检查是否同一股票的条件/do i=0to7;lagni=lag1origini;/后滞,用来下面判断/end;if lagcd=hstkcd and lag0='.'then do i=1to7;/必须满足是同一股票,且收盘价为缺失值/origini=origini+lagni;/分配数据加和/end;if closepr^='.';/删除收盘价是缺失值的观测/run;或者data a;input Stkcd Date yymmdd8. Clpr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;format Date mmddyy8.;cards;600001 01-01-01 8 . . . . . . .600001 01-01-02 . 0.3 0.3 0 0 0 0 0600001 01-01-03 9 0 0 0.5 0.2 0 0 0.1600002 01-01-02 10 0 0 0 0 0 0 0600002 01-01-03 . 0.2 0.3 0.5 0 0 0.1 0.2600002 01-01-04 12 0 0 0 0.2 0.3 0.5 0.6;run;data b;set a;temp_1=lagclpr;temp_2=lagstkdrate;temp_3=lagCapissurate;temp_4=lagRigoffrate;temp_5=lagRigoffpr;temp_6=lagSnirate;temp_7=lagSnipr;temp_8=lagDividend;if _n_=1then temp_1=1;run;data c;set b;array temp_i7 temp_2 temp_3 temp_4 temp_5 temp_6 temp_7 temp_8;array variables7 Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;if temp_1=.then do;do i=1to7;variablesi=variablesi+temp_ii;end;end;else if clpr=.then do;do i= 1to7;variablesi=.;end;end;drop temp_1-temp_8 i;run;data d;set c;if clpr=.then delete;run;25.假设股票市场的股本数据如下表,对每支股票至少1000支股票,按如下要求设计填充总股本和流通股股本数据的SAS程序:以该股票前面的股本数据填充后面的缺失值,如果某支股票上市交易时就缺失股本数据,则用该股票上市后的第一个股本数据向前填充;注:…表示有数据值,.表示缺失值;编程变量名参考:股票代码Stkcd日期Date收盘价Clpr股本变动日CapchgDate总股本Fullshr流通股trdshr/ 创建样本数据集/data test;infile datalines missover ;informat Stkcd $6. Date yymmdd10. Clpr 8.2 capchgDate yymmdd10. fullshr Trdshr 20. ;input Stkcd $ Date Clpr capchgDate fullshr Trdshr;format Stkcd $6. Date yymmdd10. Clpr 8.2 capchgDate yymmdd10. fullshr Trdshr 20.;cards;600000 2003-1-21 9.68600000 2003-1-22 9.66600000 2003-1-23 9.6600000 2003-1-24 9.88600000 2003-1-27 10.07600000 2003-1-28 10.17600000 2003-1-29 10.31600000 2003-2-10 10.09600000 2003-2-11 10.2600000 2003-2-12 10.31600000 2003-2-13 10.13600001 2000-5-29 8.13 2000-5-29600001 2000-5-30 8.14600001 2000-5-31 8.65600001 2000-6-1 8.93600001 2000-6-2 9.11600001 2000-6-5 9.02600001 2000-6-6 8.63600001 2000-6-7 8.52600001 2000-6-8 8.55600001 2000-6-9 8.3600001 2000-6-12 8.34;Run;data test25a;infile datalines missover;informat Stkcd $6.Date yymmdd10.Clpr 8.2capchgDate yymmdd10.fullshr Trdshr20. ;input Stkcd $ Date Clpr capchgDate fullshr Trdshr;format Stkcd $6.Date yymmdd10.Clpr 8.2capchgDate yymmdd10.fullshr Trdshr 20.;cards;600000 2003-1-21 9.68600000 2003-1-22 9.66600000 2003-1-23 9.6600000 2003-1-24 9.88600000 2003-1-27 10.07600000 2003-2-12 10.31600000 2003-2-13 10.13600001 2000-5-29 8.13 2000-5-29600001 2000-5-30 8.14600001 2000-5-31 8.65600000 2003-1-28 10.17600000 2003-1-29 10.31600000 2003-2-10 10.09600000 2003-2-11 10.2600001 2000-6-1 8.93600001 2000-6-2 9.11600001 2000-6-5 9.02600001 2000-6-6 8.63600001 2000-6-7 8.52600001 2000-6-8 8.55600001 2000-6-9 8.3600001 2000-6-12 8.34;Run;data test25b;set test25a;n=_n_;run;proc sort data=test25b;by stkcd n;run;data test25c;set test25b;by stkcd n;retain tempf;if first.stkcd=1then tempf=.;if fullshr^=.then tempf=fullshr;else fullshr=tempf;drop tempf;run;proc sort data=test25c;by stkcd descending n;run;data test25d;set test25c;by stkcd descending n;retain tempf;if first.stkcd=1then tempf=.;if fullshr^=.then tempf=fullshr;else fullshr=tempf;drop tempf;run;proc sort data=test25d;by stkcd n;data test25e;set test25d;by stkcd n;retain tempt;if first.stkcd=1then tempt=.;if trdshr^=.then tempt=trdshr;else trdshr=tempt;drop tempt;run;proc sort data=test25e;by stkcd descending n;run;data test25f;set test25e;by stkcd descending n;retain tempt;if first.stkcd=1then tempt=.;if trdshr^=.then tempt=trdshr;else trdshr=tempt;drop tempt;run;proc sort data=test25f;by stkcd n;run;data test25;set test25fdrop=n;run;26.用线性插值法填充缺失数据;以下面的实际数据为基础,完成相关SAS程序的设计;银行间债券市场的回购行情如下表,对于一个月、二个月和三个月的回购利率,按如下要求设计填充回购利率的月底缺失数据;注:…表示有数据值,.表示缺失值;编程变量名参考:交易日期Date基准利率代码Code基准利率Ir一个月债券回购利率R1M二个月债券回购利率R2M三个月债券回购利率R3M/ 创建样本数据集/data test;informat Date yymmdd10. code$8. Ir; input Date: Code $ Ir;format Date yymmdd10. code $8. Ir; cards;2004-01-02 R1M 0.0252004-01-05 R1M 0.02552004-01-05 R2M 0.02442004-01-05 R3M 0.0272004-01-06 R1M 0.0242004-01-06 R2M 0.0252004-01-07 R1M 0.02412004-01-07 R2M 0.02452004-01-08 R1M 0.0232004-01-08 R2M 0.02452004-01-08 R3M 0.0232004-01-09 R1M 0.0232004-01-09 R2M 0.0232004-01-09 R3M 0.02482004-01-12 R1M 0.0252004-01-12 R2M 0.0242004-01-13 R2M 0.0237 2004-01-14 R1M 0.0248 2004-01-14 R2M 0.0248 2004-01-14 R3M 0.025 2004-01-15 R1M 0.0246 2004-01-15 R2M 0.025 2004-01-15 R3M 0.03 2004-01-16 R1M 0.0325 2004-01-16 R2M 0.026 2004-01-16 R3M 0.0265 2004-01-17 R1M 0.038 2004-01-17 R2M 0.0325 2004-01-18 R1M 0.035 2004-01-18 R2M 0.035 2004-01-18 R3M 0.0325 2004-01-19 R1M 0.0343 2004-01-19 R2M 0.033 2004-01-20 R1M 0.032 2004-01-20 R2M 0.032 2004-01-20 R3M 0.0325 2004-01-29 R1M 0.0288 2004-01-29 R2M 0.029 2004-01-29 R3M 0.0296 2004-01-30 R1M 0.029 2004-01-30 R2M 0.0297 2004-01-30 R3M 0.0296 2004-02-02 R2M 0.0305 2004-02-03 R1M 0.028 2004-02-03 R2M 0.028 2004-02-04 R2M 0.0251 2004-02-05 R1M 0.0248 2004-02-05 R2M 0.0254 2004-02-06 R1M 0.024 2004-02-06 R2M 0.0242 2004-02-09 R1M 0.024 2004-02-09 R2M 0.024 2004-02-09 R3M 0.0255 2004-02-10 R1M 0.0238 2004-02-10 R2M 0.0235 2004-02-11 R1M 0.0234 2004-02-11 R2M 0.0245 2004-02-11 R3M 0.025 2004-02-12 R1M 0.0232004-02-12 R3M 0.024 2004-02-13 R1M 0.0229 2004-02-13 R2M 0.0231 2004-02-13 R3M 0.0234 2004-02-16 R1M 0.0225 2004-02-16 R2M 0.0229 2004-02-16 R3M 0.0234 2004-02-17 R1M 0.0225 2004-02-17 R2M 0.0228 2004-02-17 R3M 0.024 2004-02-18 R1M 0.0225 2004-02-18 R2M 0.0224 2004-02-18 R3M 0.0232 2004-02-19 R1M 0.0223 2004-02-19 R2M 0.0227 2004-02-19 R3M 0.0231 2004-02-20 R1M 0.0222 2004-02-20 R2M 0.0222 2004-02-20 R3M 0.023 2004-02-23 R1M 0.0222 2004-02-23 R2M 0.0235 2004-02-23 R3M 0.0231 2004-02-24 R1M 0.0222 2004-02-24 R2M 0.0223 2004-02-24 R3M 0.024 2004-02-25 R1M 0.0218 2004-02-25 R2M 0.0213 2004-02-25 R3M 0.021 2004-02-26 R1M 0.0218 2004-02-26 R2M 0.0218 2004-02-26 R3M 0.0224 2004-02-27 R1M 0.0218 2004-02-27 R2M 0.0218 2004-02-27 R3M 0.0223 2004-03-01 R1M 0.0217 2004-03-01 R2M 0.0215 2004-03-01 R3M 0.022 2004-03-02 R1M 0.022 2004-03-02 R2M 0.0216 2004-03-02 R3M 0.0218 2004-03-03 R1M 0.0218 2004-03-03 R2M 0.0218 2004-03-03 R3M 0.0222004-03-04 R2M 0.022 2004-03-04 R3M 0.022 2004-03-05 R1M 0.0218 2004-03-05 R2M 0.0218 2004-03-05 R3M 0.022 2004-03-08 R1M 0.0211 2004-03-08 R3M 0.0227 2004-03-09 R1M 0.0212 2004-03-09 R3M 0.0225 2004-03-10 R1M 0.022 2004-03-10 R2M 0.0218 2004-03-10 R3M 0.0224 2004-03-11 R1M 0.0214 2004-03-11 R2M 0.0214 2004-03-11 R3M 0.0228 2004-03-12 R1M 0.0214 2004-03-12 R2M 0.0214 2004-03-12 R3M 0.0223 2004-03-15 R1M 0.021 2004-03-15 R2M 0.0216 2004-03-15 R3M 0.0225 2004-03-16 R1M 0.0213 2004-03-16 R3M 0.0223 2004-03-17 R1M 0.0211 2004-03-17 R2M 0.0222 2004-03-18 R1M 0.0216 2004-03-18 R2M 0.0222 2004-03-18 R3M 0.0228 2004-03-19 R1M 0.0216 2004-03-19 R2M 0.022 2004-03-19 R3M 0.023 2004-03-22 R1M 0.0215 2004-03-22 R2M 0.0228 2004-03-23 R1M 0.0216 2004-03-23 R2M 0.0228 2004-03-24 R1M 0.022 2004-03-24 R2M 0.024 2004-03-24 R3M 0.0248 2004-03-25 R1M 0.0231 2004-03-25 R3M 0.025 2004-03-26 R1M 0.023 2004-03-26 R2M 0.0233 2004-03-26 R3M 0.02452004-03-29 R2M 0.0233 2004-03-30 R1M 0.0208 2004-03-30 R2M 0.0233 2004-03-31 R1M 0.0229 2004-03-31 R2M 0.0235 2004-04-01 R1M 0.023 2004-04-01 R2M 0.024 2004-04-02 R1M 0.0232 2004-04-02 R2M 0.0235 2004-04-02 R3M 0.025 2004-04-05 R1M 0.0217 2004-04-05 R2M 0.0229 2004-04-05 R3M 0.0256 2004-04-06 R1M 0.0215 2004-04-06 R2M 0.024 2004-04-06 R3M 0.0249 2004-04-07 R1M 0.0213 2004-04-07 R2M 0.0232 2004-04-07 R3M 0.0249 2004-04-08 R1M 0.022 2004-04-08 R2M 0.023 2004-04-08 R3M 0.0251 2004-04-09 R1M 0.0218 2004-04-09 R2M 0.0214 2004-04-09 R3M 0.025 2004-04-12 R1M 0.0253 2004-04-12 R2M 0.024 2004-04-12 R3M 0.0278 2004-04-13 R1M 0.0265 2004-04-13 R2M 0.0275 2004-04-13 R3M 0.028 2004-04-14 R1M 0.0268 2004-04-14 R2M 0.0258 2004-04-14 R3M 0.0285 2004-04-15 R1M 0.027 2004-04-15 R2M 0.0275 2004-04-16 R1M 0.0271 2004-04-16 R2M 0.0283 2004-04-19 R1M 0.0287 2004-04-19 R2M 0.0283 2004-04-19 R3M 0.0287 2004-04-20 R1M 0.0285 2004-04-20 R2M 0.0292004-04-21 R2M 0.0287 2004-04-21 R3M 0.0315 2004-04-22 R1M 0.029 2004-04-22 R3M 0.0288 2004-04-22 R2M 0.0293 2004-04-23 R1M 0.0285 2004-04-23 R2M 0.0295 2004-04-26 R1M 0.025 2004-04-26 R2M 0.0288 2004-04-27 R1M 0.028 2004-04-27 R3M 0.029 2004-04-28 R1M 0.0279 2004-04-28 R2M 0.0285 2004-04-29 R1M 0.028 2004-04-29 R2M 0.028 2004-04-29 R3M 0.0286 2004-04-30 R1M 0.0265 2004-04-30 R2M 0.0279 2004-05-08 R1M 0.0265 2004-05-09 R1M 0.0264 2004-05-10 R1M 0.0264 2004-05-10 R2M 0.0264 2004-05-10 R3M 0.029 2004-05-11 R1M 0.0264 2004-05-11 R2M 0.0272 2004-05-12 R1M 0.026 2004-05-12 R2M 0.0268 2004-05-13 R1M 0.0255 2004-05-14 R1M 0.026 2004-05-14 R2M 0.0265 2004-05-17 R1M 0.0256 2004-05-17 R2M 0.0265 2004-05-18 R1M 0.0256 2004-05-18 R3M 0.0285 2004-05-19 R1M 0.0256 2004-05-19 R2M 0.026 2004-05-19 R3M 0.0285 2004-05-20 R1M 0.0265 2004-05-20 R2M 0.027 2004-05-20 R3M 0.0265 2004-05-21 R1M 0.026 2004-05-24 R1M 0.021 2004-05-24 R2M 0.0272004-05-25 R1M 0.02252004-05-25 R2M 0.0272004-05-26 R1M 0.02632004-05-26 R3M 0.02832004-05-27 R1M 0.0282004-05-27 R2M 0.0272004-05-27 R3M 0.02852004-05-28 R1M 0.02682004-05-31 R1M 0.02882004-05-31 R2M 0.0322004-06-01 R1M 0.0312004-06-01 R2M 0.03192004-06-01 R3M 0.0335;run;data test;informat Date yymmdd10. code$8. Ir;input Date: Code $ Ir;format Date yymmdd10. code $8. Ir;cards;2004-01-02 R1M 0.0252004-01-05 R1M 0.02552004-01-05 R2M 0.02442004-01-05 R3M 0.0272004-01-06 R1M 0.0242004-01-06 R2M 0.0252004-01-07 R1M 0.02412004-01-07 R2M 0.02452004-01-08 R1M 0.0232004-01-08 R2M 0.02452004-01-08 R3M 0.0232004-01-09 R1M 0.0232004-01-09 R2M 0.0232004-01-09 R3M 0.02482004-01-12 R1M 0.0252004-01-12 R2M 0.0242004-01-13 R1M 0.02352004-01-13 R2M 0.02372004-01-14 R1M 0.02482004-01-14 R2M 0.02482004-01-14 R3M 0.0252004-01-15 R1M 0.02462004-01-15 R2M 0.025。

SAS上机练习题全部含参考答案

SAS上机练习题全部含参考答案

重庆医科大学--卫生统计学统计软件包SAS上机练习题(一)1、SAS常用的窗口有哪三个?请在三个基本窗口之间切换并记住这些命令或功能键。

2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不同颜色的含义;并根据日志窗中的信息修改完善程序。

3、将第2题的程序、结果及日志保存到磁盘。

4、试根据如下例1的程序完成后面的问题:表1 某班16名学生3门功课成绩表如下问题:1)建立数据集;2)打印至少有1门功课不及格同学的信息;(提示,使用if语句)参考程序:data a;input id sh wl bl;cards;083 68 71 65084 74 61 68085 73 75 46086 79 80 79087 75 71 68084 85 85 87085 78 79 75086 80 76 79087 85 80 82088 77 71 75089 67 73 71080 75 81 70118 70 54 75083 70 66 84084 62 73 65099 82 70 79;run;data b;set a;if sh<60 or wl<60 or bl<60then output;run;proc print data=b;var id sh wl bl;run;5、根据下列数据建立数据集表2销售数据开始时间终止时间费用2005/04/28 25MAY2009 $123,345,0002005 09 18 05OCT2009 $33,234,5002007/08/12 22SEP2009 $345,600提示:(计算,如果读入错误,可试着调整格式的宽度;显示日期需要使用输出格式) 开始时间,输入格式yymmdd10.终止时间,输入格式date10.费用,输入格式dollar12.参考程序:data a;input x1 yymmdd10. x2 date10. x3 dollar13.;cards;2005/04/28 25MAY2009 $123,345,0002005 09 18 05OCT2009 $33,234,5002007/08/12 22SEP2009 $345,60020040508 30JUN2009 $432,334,500;run;proc print;run;proc print;format x1 yymmdd10. x2 date9. x3 dollar13.;run;6、手机号码一编码规则一般是:YYY-XXXX-ZZZZ,其YYY为号段;XXXX一般为所在地区编码;ZZZZ为对应的个人识别编号。

sas课后习题答案

sas课后习题答案

sas课后习题答案SAS课后习题答案SAS(Statistical Analysis System)是一种广泛应用于数据分析和统计建模的软件工具。

它提供了丰富的功能和强大的数据处理能力,被广泛应用于各个领域的数据分析工作中。

在学习SAS的过程中,课后习题是一种非常重要的练习方式,可以帮助学生巩固所学的知识并提高实际应用能力。

本文将为大家提供一些常见SAS课后习题的答案,希望能对大家的学习有所帮助。

一、基础习题答案1. 请编写SAS代码,计算一个数据集中某个变量的平均值。

解答:```data dataset;input variable;datalines;1234;run;proc means data=dataset mean;var variable;```以上代码中,我们首先创建了一个名为dataset的数据集,并输入了一个名为variable的变量。

然后使用proc means过程计算了变量variable的平均值。

2. 请编写SAS代码,将两个数据集按照某个变量进行合并。

解答:```data dataset1;input id variable1;datalines;1 102 203 30;run;data dataset2;input id variable2;datalines;1 1002 2003 300;data merged_dataset;merge dataset1 dataset2;by id;run;```以上代码中,我们首先创建了两个数据集dataset1和dataset2,并分别输入了id和variable1,以及id和variable2两个变量。

然后使用merge语句将两个数据集按照id变量进行合并,生成了一个名为merged_dataset的新数据集。

二、进阶习题答案1. 请编写SAS代码,对一个数据集进行排序,并输出排序后的结果。

解答:```data dataset;input variable;datalines;3142;run;proc sort data=dataset out=sorted_dataset;by variable;run;```以上代码中,我们首先创建了一个名为dataset的数据集,并输入了一个名为variable的变量。

sas练习题

sas练习题

SAS练习题一、基础操作类1. 如何在SAS中创建一个数据集?2. 请写出SAS中读取外部数据文件的语句。

3. 如何在SAS中查看数据集的结构?4. 如何在SAS中对数据集进行排序?5. 请写出SAS中合并两个数据集的语句。

6. 如何在SAS中删除一个数据集?7. 请简述SAS中变量的命名规则。

8. 如何在SAS中修改数据集的属性?9. 请写出SAS中创建临时数据集和永久数据集的语句。

10. 如何在SAS中导入和导出Excel文件?二、数据处理类1. 如何在SAS中对缺失值进行处理?2. 请写出SAS中计算变量总和、平均数、最大值和最小值的语句。

3. 如何在SAS中进行条件筛选?4. 请简述SAS中日期和时间的处理方法。

5. 如何在SAS中实现数据的分组汇总?6. 请写出SAS中创建新变量的语句。

7. 如何在SAS中进行数据类型转换?8. 请写出SAS中替换变量值的语句。

9. 如何在SAS中实现数据的横向连接和纵向连接?10. 请简述SAS中数组的使用方法。

三、统计分析类1. 如何在SAS中进行单因素方差分析?2. 请写出SAS中进行t检验的语句。

3. 如何在SAS中计算相关系数?4. 请简述SAS中回归分析的基本步骤。

5. 如何在SAS中进行主成分分析?6. 请写出SAS中进行聚类分析的语句。

7. 如何在SAS中实现时间序列分析?8. 请简述SAS中生存分析的基本概念。

9. 如何在SAS中进行非参数检验?10. 请简述SAS中多重响应分析的方法。

四、图形绘制类1. 如何在SAS中绘制直方图?2. 请写出SAS中绘制散点图的语句。

3. 如何在SAS中绘制饼图?4. 请简述SAS中绘制箱线图的方法。

5. 如何在SAS中绘制条形图?6. 请写出SAS中绘制折线图的语句。

7. 如何在SAS中设置图表的颜色和样式?8. 请简述SAS中绘制雷达图的方法。

9. 如何在SAS中实现图表的交互功能?10. 请简述SAS中图表导出的方法。

SAS练习题及答案

SAS练习题及答案

1.SAS系统主要完成以数据为中心的四大功能,其中核心功能为:统计分析功能2.在SAS系统的组成模块中,能进行数据管理和数据加工、处理的模块……BASE模块3.SAS显示管理系统窗口中能够提交当前运行的SAS程序执行过程的窗口为:…………………………………………………………………PGM窗口4.如下一段SAS程序:DATA ;INPUT X @@;CARDS:2 3 4 9 1 ;RUN;模块当运行程序以后SAS系统会产生SAS数据集………………………………………( C )A. DATAB. NULLC. DATA1D.程序错误5.INPUT语句一般用来指定数据的读入方式,可以读取各种类型的数据包括字符型,现有如下的一段程序:DATA ONE;INPUT NAME $ SCORE;CARDS;Wanglin 85Zhang dong-feng 90;那么在第二个观测中读取到的NAME 为……………………………………………(B)A. Zhang dong-fengB. ZhangC. Zhang doD. Zhang dong6.假设变量X的值为5,有如下程序IF X<5 THENX=X+3;ELSEX=X-2;则执行程序以后变量X的值为………………………………………………………( B)A. 5B.3C.8D. 程序错误7.DATA TEST;DO I=1 TO 3;PUT I= ;END;RUN;程序结果在LOG窗口输出形式为……………………………………………………( A )A. I=1 I=2 I=3B.I=2 I=3 I=4C. 不显示D. I=3 I=2 I=18.假设变量X1=-10.253 X2=-5 则[SIGN(X1)+ABS(X2)]/INT(X1)的运算结果为………………………………………( B)A.-4B.-0.4C. 4D.0.5759.逻辑运算[(5<1)|(4<>2)]&(7>2)的结果为:……………………………………( 1 )10.以下几个统计量在UNIVARIATE过程中能求得到得而在MEANS过程中无法求得的是………………………………………………………………………………………( B )A. meanB. varC. Q1D.range11.SAS系统主要完成以数据为中心的四大功能,其中能够将Excel、Lotus、DBF、TXT等数据转化成SAS 数据集属于…………………………… (数据管理功能 )12. SAS数据集是关系型结构,分成两部分:描述部分和。

sas习题及答案

sas习题及答案

sas习题及答案【篇一:sas综合题1-15】txt>1. 创建一包含10000个变量(x1-x10000),100个观测值的sas数据集。

分别用data步,data步数组语句和iml过程实现。

data步:data p1(drop=i); retain x1-x10000 0; do i=1 to 100; output; end; run;data步数组:data p1(drop=i); array x x1-x10000; do i=1 to 100;do over x; x=ranuni(0); end; output;end;run;宏:%macro names(name,number,obs); data a;%do i=1 %to obs; %do n=1 %to number; namen=1; %end; output; %end; run;%mend names;%names(x, 10000,100);2. 多种方法创建包含变量x的10000个观测值的sas数据集。

初值为0:data a; retain x 0; do i=1 to 10000; drop i;output; end; run;随机数:data a (drop=i); do i=1 to 10000; x=ranuni(0); output; end; run;读入其他数据文件:(先创建数据文件a,再从中读取)data a (drop=i); do i=1 to 10000; x=ranuni(0); output;file x:\a.txt; put x; end; run;data b;infile x:\a.txt; input x; output; run;读入其他数据集:data a;do i=1 to 10000; x=ranuni(0); output; end; run;data b; set a; drop i; output; run;3. 数据集a中日期变量date包含有缺失值,创建包含日期变量date的数据集b,并填充开始到结束日之间的所有日期值。

江西财经大学SAS软件技能测试试题一

江西财经大学SAS软件技能测试试题一

江西财经大学SAS软件技能测试试题一一、填空题(每小题2分,共20分。

)1.()窗用以显示和让用户指定打印在输出各页的脚注。

2.SAS软件使用()命令可以决定PROGRAME EDITER 窗口中是否出现行号。

3.SAS软件使用()窗口可以显示、修改、设置并存储各功能键。

4.在SAS程序中,经常要选择观测。

我们可以用选项()保留原数据集中的观测,用选项DROP删除原数据集中的观测。

5.编辑SAS数据集时,用()命令建立永久数据集。

6.PUT语句把指定的信息输出到LOG窗中。

当语句FILE出现在PUT语句之()时,PUT语句把指定信息输出到FILE语句指定的输出文件之中。

7.SAS语句的GCHART过程采用不同的选项可以用来打印各种统计图形。

用()语句可以画直方图,用()语句可以画饼图,用STAR语句可以画星座图。

8.()语句或过程可以告诉SAS系统建立新数据集时从哪一个或哪几个数据集中获取数据。

9.SAS系统用()语句或过程作聚类分析。

二、简答题(每小题10分,共20分)1.DATA步中的INPUT语句有哪四种输入格式?2.请回答FILE和INFILE语句的作用。

三、根据下面结果编程或写出程序的运行结果(共20分)说明:下面是根据SAS软件中的数据集SASUSER.CLASS做出的两个结果。

请根据结果分别写出相应的SAS程序或窗口操作步骤。

本题的结果为一盒须图。

【第1 页共2 页】要求:(1)请根据结果写出相应的SAS程序或窗口操作步骤;(2)说明图中数据的含义;(3)判断HEIGHT的分布是否对称,若不对称,请判断是左偏还是右偏。

HEIGHT四、综合统计分析。

(40分)1.(15分)假定SAS软件中的数据集dst.bclass数据集是某总体的一个样本。

现在需要估计在95%的概率保证程度下的总体变量HEIGHT的均值的区间估计。

请编程或写出祥细的窗口说明,并写出这个区间。

2.(25分)根据SAS软件中的数据集SASUSER.fitness做一多元线性回归模型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《SAS软件应用基础》期中考试参考答案
【考前说明事项】
请按要求将答案、操作步骤、程序直接输入在本文件中指定位置处;考试结束时将名为“姓名@SAS”的文件上传到服务器上“temp”目录下,教师将从该目录中收集试卷。

另外,为防止意外,请随时保存文档!
【试题】
一.填充(20%)
1.一般SAS程序的运行信息将在LOG窗口显示;而程序的的运行结果,若有文本信息输出的话,将在OUTPUT窗口显示。

2.要运行已编辑好的SAS程序,可以点击RUN->SUBMIT菜单;一般有关统计分析的常用模块,SAS都组织在解决方案->分析菜单里。

3.SAS数据步程序一般都以关键字DATA开始,以关键字RUN;结尾。

4.SAS变量只有两种基本类型字符型和数值型;而日期型数据在存贮时将折算成与1960年1月1日的间隔天数。

5.SAS变量的属性有Name、Label、Format、Informat、Length 和Type六项。

6.SAS数据集sasuser.class位于SAS数据库sasuser中,它在WINDOWS下的物理文件名应该是class.7bdat。

7.SAS的临时数据库是指work库,在该库中的数据文件,在退出SAS后将丢失。

8.在SAS软件中单词USS表示加权平方和,Q1表示四分之一分位数。

9.在data等语句里,指定数据集时,数据集名后可跟多个数据集的选项,但所有数据集选项必须在圆括号内,用空格分隔。

10.在SAS中使用INPUT语句读入数据时,有四种基本的输入模式,它们分别是“列模式”、“格式化模式”、“自由列表模式”和“命名模式。

二.纠错题(20%)
二.1.正确程序如下:
datatest;
inputcode price;
cards;
60038118
60026216
procprint;
run;
1.将有问题的语句涂上红色,并写出正确的程序。

data test
input code, price;
proc print;
cards;
600381 18
600262 16
run;
二.2.正确程序如下:
datatmp;
inputname$ @@;
cards;
张三李四王五徐六
run;
2.将有问题的语句涂上红色,并写出正确的程序。

datatmp;
input name;
cards;
张三李四王五徐六;
run;
三.程序阅读理解题(20%)
1.
proctranspose data=score out=ts;
id name;
run;
上述程序的主要功能是:
将score数据集的数值型变量s1-s3进行转置;
并用变量name的值作为转置后相应各列的变量名;
转置后的数据另寸为ts数据集。

2.
data tmp;
set tmp1 tmp2;
by a;
run;
上述程序的主要功能是:
将数据集tmp1,tmp2按照变量a值顺序进行拼接,形成四条记录存放进数据集tmp中。

四.操作题(20%)
1.试将EXECL电子表格文件qzks.xls导入为SAS数据集work.qz。

导入操作的等效程序粘贴如下:
PROC IMPORT OUT= WORK.qz
DATAFILE= "G:\SAS统计应用基础\sasqz\qzks.xls"
DBMS=EXCEL2000 REPLACE;
SHEET="stock";
GETNAMES=YES;
RUN;
2.试用SQL查询窗在数据集score中查询所有女生(sex='f'')的姓名name以及她三门课的平均成绩avg。

查询操作的等效程序粘贴如下:
PROC SQL;
Select
,
(SCORE.Math+SCORE.Chinese+SCORE.English)/3 as avg
from TMP.SCORE
whereSCORE.Sex EQ 'f'
;
五.编程题(20%)
1.试通过编程建立一个名为ks1的数据集,内含变量姓名、学号、生日、成绩,部分具体数据如下(注意,不允许改动原始数据的结构、顺序等。

):
xulili 001 82/04/21 89 zhangsanfeng 012 85/11/02 91
wanghu 101 84/03/14 76 guojianguang 115 83/09/18 80
完成上述任务的程序如下:
data ks1;
length name$ 12.;
input name$ num$ birthday yymmdd8.score@@;
cards;
xulili 001 82/04/21 89 zhangsanfeng 012 85/11/02 91
wanghu 101 84/03/14 76 guojianguang 115 83/09/18 80
run;
2.试用数据步编程将GPA数据集中变量GPA的值大于3但小于4的观测记录,以0.1的概率抽取出来,生成新的数据集tmp。

完成上述任务的程序如下:
data tmp;
set tmp.gpa;
if3<gpa<4;
if ranuni(0) le 0.1thenoutput;
run;。

相关文档
最新文档