SAS学习系列11.-对数据做简单的描述统计

上传人:碎****木 文档编号:220862086 上传时间:2021-12-09 格式:DOCX 页数:16 大小:230.47KB
返回 下载 相关 举报
SAS学习系列11.-对数据做简单的描述统计_第1页
第1页 / 共16页
SAS学习系列11.-对数据做简单的描述统计_第2页
第2页 / 共16页
SAS学习系列11.-对数据做简单的描述统计_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SAS学习系列11.-对数据做简单的描述统计》由会员分享,可在线阅读,更多相关《SAS学习系列11.-对数据做简单的描述统计(16页珍藏版)》请在金锄头文库上搜索。

1、11. 对数据做简洁的描述统计一使用 proc means 描述数据用proc means 过程步,可以对数据做简洁的描述统计,包括:非缺省值个数、均值、标准差、最大值、最小值等。根本语法:PROC MEANS data = 数据集 ;VAR 变量列表; CLASS 分组变量;加权平均的权数相应观测消灭的频数说明:1可选项 “MAXDEC = n ”用来指定输出结果的小数位数;(2) 默认是对数据集的全部数值变量的非缺省值做描述统计, 假设想包含缺省值,加上可选项“MISSING”;(3) VAR 语句指定要做描述统计的变量;CLASS 语句指定按分组变量对数据进展分组分别做描述统计;BY 语

2、句同 CLASS 语句 需要事先按 BY 变量排好序;(4) 默认输出非缺省值个数、均值、标准差、最大值、最小值;也可以自己指定需要输出的描述统计量:MAX 最大值;MIN最小值; MEAN均值; MEDIAN中位数; MODE众数; N非缺省值个数; NMISS缺省值个数; RANGE极差; STDDEV标准差; SUM累和;例1 鲜花销售的数据C:MyRawDataFlowers.dat,变量包括顾客ID,销售日期,petunias,snapdragons,marigolds 三种花的销量:读取数据,计算新变量销售月份month,并使用proc sort 依据月份排序,并使用proc me

3、ans 的by 语句来依据月份描述数据。代码:data sales;infile ”c:MyRawDataFlowers.dat”;input CustID $ 9 SaleDate MMDDYY10. Petunia SnapDragon Marigold;Month = MONTH(SaleDate); proc sort data = sales; by Month;/* Calculate means by Month for flower sales; */proc means data = sales MAXDEC = 0; by Month;var Petunia SnapDra

4、gon Marigold;title ”Summary of Flower Sales by Month”;run;运行结果:二使用统计量有时候需要将统计量存入新数据集,以便进一步做数据分析,或者与原数据集合并。一、将统计量存入新数据集可以用 ODSOutput Delivery System系统或者 OUTPUT 语句,下面介绍用 OUTPUT 语句。语法:OUTPUT OUT = 数据集名 统计量名(变量列表)=新列名;例如:PROC MEANS DATA = zoo NOPRINT;VAR Lions Tigers Bears;OUTPUT OUT = zoosum MEAN(Lions

5、 Bears) = LionWeight BearWeight;RUN;例 2 仍旧是 例 1 的鲜花数据,读取数据,依据 CustomerID 排序, 使用proc means 过程,将 mean 和 sum 值存入新数据集 totals 中。代码:data sales;infile ”c:MyRawDataFlowers.dat”;input CustID $ 9 SaleDate MMDDYY10. Petunia SnapDragon Marigold;proc sort data = sales; by CustID;/* Calculate means by CustomerID,

6、 output sum and mean to new data set; */proc means NOPRINT data = sales; by CustID;var Petunia SnapDragon Marigold; output out = totalsmean(Petunia SnapDragon Marigold) = MeanP MeanSD MeanM sum(Petunia SnapDragon Marigold) = Petunia SnapDragonMarigold;proc print data = totals;title ”Sum of Flower Da

7、ta over Customer ID”; format MeanP MeanSD MeanM 3.;run;运行结果:程序说明:2保存统计量的新数据集,包括想要的统计量、 BY/CLASS(1) “NOPRINT”告知 SAS 不产生任何输出结果,由于已经存入新数据集zoosum; 语句的变量、_TYPE_、_FREQ_;3BY 语句变量有 3 个水平:756-01、834-01、901-02,结果是 3 个观测,CLASS 类似。二、合并统计量到原数据集1. 前面讲到将按“BY 变量”分组统计量保存为统计量数据集, 进一步可以用 MERGE 语句,将统计量数据集依据公共的“BY 变量”,通

8、过一对多匹协作并到原数据集。例 3 运动鞋经销商的销售数据C:MyRawDataShoesales.dat,变量包括风格名称、运动类型、第四季度销量:市场经抱负要一个报表,每种风格运动鞋占该运动类型销量中的百分比。代码:data shoes;infile ”c:MyRawDataShoesales.dat”; input Style $ 1-15 ExerciseType $ Sales; run;proc sort data = shoes; by ExerciseType;run;/* Summarize sales by ExerciseType and print; */proc me

9、ans NOPRINT data = shoes; var Sales;by ExerciseType;output out = summarydata sum(Sales) = Total;run;proc print data = summarydata; title ”Summary Data Set”;run;/* Merge totals with the original data set; */data shoesummary;merge shoes summarydata; by ExerciseType;Percent = Sales / Total * 100; run;p

10、roc print data = shoesummary; by ExerciseType;id ExerciseType;var Style Sales Total Percent;title ”Sales Share by Type of Exercise”;run;运行结果:2. 假设统计量是全体观测的汇总统计量无BY 变量做分组统计,此时,就不能直接承受一对多匹配没有共同“BY 变量”合并。但可以用 SET 语句实现。语法:DATA 新数据集;IF _N_ = 1 THEN SET 汇总统计量数据集; SET 原数据集;注:“汇总统计量数据集”只有一条观测值。创立新数据集时, 第一次迭

11、代循环_N_=1就读入该观测值,并始终为后续读入“原数据集”保存它相当于 RETAIN 语句。该语法机制也可用于: 没有匹配变量状况下,将一条观测与多条观测合并。例 4 仍是例 3 的数据,市场经抱负要一个报表,每种风格运动鞋占总销量的百分比。代码:data shoes;infile ”c:MyRawDataShoesales.dat”; input Style $ 1-15 ExerciseType $ Sales; run;* Output grand total of sales to a data set and print;proc means NOPRINT data = shoe

12、s; var Sales;output out = summarydata sum(Sales) = GrandTotal;RUN;proc print data = summarydata; title ”Summary Data Set”;run;* Combine the grand total with the original data;data shoesummary;if _N_ = 1 then set summarydata; set shoes;Percent = Sales / GrandTotal;run;proc print data = shoesummary;va

13、r Style ExerciseType Sales GrandTotal Percent; format Percent PERCENT.2;title ”Overall Sales Share”;run;运行结果:三使用 proc freq为数据计数用 proc freq 过程步可以对数据集的变量计算频数,再用 tables命令以表格的形式输出:只输出一个变量单向表;输出两个变量双向表;输出多个变量穿插表。频数表也可以用来检查错误数据。语法:PROC FREQ data = 数据集; TABLES 变量组合 ;注:1关于变量组合:一个变量的单向表,用“ TABLES 变量;”;两个变量的双

14、向表,用“TABLES 变量 1 * 变量 2;”;(2) 常用的可选项有:LIST用 list 形式打印穿插表而不是网格; MISSING频数统计量中包含缺失值; NOCOL强制在穿插表中不打印列百分比; NOROW强制在穿插表中不打印行百分比; OUT=data-set输出数据集;例 5 咖啡店的销售数据C:MyRawDataCoffee.dat,记录了销售的咖啡种类cappuccino, espresso, kona, iced coffee ,以及每次购置的顾客是打包还是原地就饮:读入数据,计算两个变量的频数。代码:data orders;infile ”c:MyRawDataCoffee.dat”; input Coffee $ Window $ ;* Pri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号