




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称: 数据处理数据类型a. 横截面数据集(cross-sectional data set):即给定时点对个人、家庭、企业、国家或一系列其他单位采集的样本所构成的数据集(应该忽略细小的时间差别)名词术语1、数据集:数据的集合,由样本(行)和变量(列)组成b.时间序列数据集(time series data set):是由一个或几个变量在不同时间的观测值所构成的。c.混合横截面数据集(pooled cross section data set):有些数据既有横截面数据的特点又有时间序列的特点,但每一时点的样本不同。d.综列数据集(panel data set):由横截面数据集中每个样本的一
2、个时间序列组成。(定点长期调查)其他专门数据类型: 1、离散数据(discrete data):通常在考察个人、家庭或企业的决策行为时,通过问卷调查获得,由此发展出“离散选择模型”2、持续数据(survival data):用于考察变量从开始到结束或调查终止前所经过的时间长度,如失业持续时间、罢工持续时间、甚至怀孕间隔3、cohort(一代人) data - 为持续收集特定社会群体在一段时间内的变化的数据。如:调查七十年代出生的样本在10年间的汽车持有率数据或就业率数据等。SAS运行环境的界面菜单栏: 文件 编辑 工具解决方案: 各功能模块窗口帮助SAS资源管理器我的电脑逻辑库:类似我的电脑,
3、不同的是,在sas系统里才存在的,关闭sas系统后,在本地机中不容易找到包括4个目录:work(临时文件夹)map, sasuser, sashelpSAS工作空间n可以通过“查看”调取:程序窗口(PROGRAM EDITOR)n运行记录窗口(LOG)n输出窗口(OUTPUT)SAS程序第一例nSAS/HelloWorld.sasnn注:以后程序文件省略后缀,直接简记为文件名称,如此例简记为HelloWorld,需要说明文件类型时才标明后缀。Ctrl+e 清空除特殊字符外,大小写不区分数据步Data a; 生成以a命名的数据集,这里a是空的数据集File print; 将原本在日志窗口中输出的
4、内容转移至输出窗口中输出Put hello world; 将put后的内容在日志窗口中呈现Run;Proc print; 将前面运行的结果在输出窗口显示Run;运行后,日志窗口中显示执行情况深蓝 固有关键词浅蓝 普通关键词Insight模块在逻辑库中新建一个文件夹“培训”,放入培训中需要的文件在“命令行”中输入“insight”,启动insight逻辑库及其所含的数据界面:菜单 文件 编辑:可以设置 分析:图形、分析 灰色不可操作的菜单左上角的小三角 移动查找新建观测(样本)新建变量抽取样本左边的小方框,作图时用于表示这样的样本填充数据:选定需要填充的范围,鼠标右键,“填充值”对话框:值:1增
5、加值:1表示从1开始,增量为1默认变量名和变量类型,类型可以改变抽取样本选定2个变量,右键“抽取”,对这两个样本进行更加详细的分析编辑-窗口-工具,出现调色板,标记色彩对事先选定的样本标记,方便对数据作直观的研究事先未选定样本,创建标记色彩的规则:每个样本的每一个变量,符合某种条件时将该样本标记为某种颜色。查看一个数据集的概况:右键、属性“标签”对数据集添加密码等打开“分析”中的分布、拟合、多元等的窗口后,原先灰色不可选的菜单菜可操作(TablesGraphsCurves等)“分析”菜单中也可作图分布:输出大多数常用的统计量拟合:回归分析多元:方差分析不同的分析方法,TablesGraphsC
6、urves菜单里显示的功能也是不同的SAS程序的书写格式n1、SAS程序由语句组成,语句用分号结束。n2、SAS语句可以从某一行的任意位置开始; n3、几个SAS语句可以写在同一行上,但每句要使用分号n4、一个语句也可以写成几行,只要语句中的单词不被断开就可以。在一个语句中各个单词之间至少要有一个空格。n5、SAS程序中一般不区分大小写(字符串中要区分大小写)n6、用/*注释的内容*/来对程序进行注释,绿色显示SAS程序的结构nSAS数据集样本(观测、记录)、变量(字段、域)、表(数据集)、 数据库(一个或多个表,有着某种特定的联系,来实现某种功能)n许多SAS语句都是以关键词开始并用它识别语
7、句的类型(如data、input、proc)n绝大部分的SAS语句都可分为两步:DATA步(打开、编辑、整理数据)和PROC步(分析、处理、显示数据)SAS的变量及格式变量属性(名称、类型、长度、输入格式、输出格式、标签)类型:数字型、字符串型输入格式:数据被SAS读取的格式输出格式:数据呈现给人们的格式SAS程序第二例nSAS/orange.sasdata oranges; input variety美元符,表示它前面的变量是字符型,否则就是数值型 $ flavor texture looks; total=flavor+texture+looks用赋值的方式生成新的变量; label to
8、tal="总数给变量加标签" cardsCards后面是数据本身;navel 9 8 6不需要每行结束后都分号temple 7 7 7valencia 8 9 9mandarin 5 7 8;proc sort操作的名称及对象数据集的名称 data=oranges; by descending对某个变量降序排列 total; run;proc print data=oranges; var输出的变量,没有该语句默认输出所有变量 _numeric_; /* var _character所有字符型变量,系统内置变量,有固定含义_;*/ title '对ORANGES数据
9、集的品尝结果加标题'run;输入数据-形成数据集-排序-打印显示SAS文件及命名n1、SAS数据集文件(后缀为sas7bdat)n2、SAS程序文件(后缀为sas)n3、SAS日志文件(后缀为log)n4、SAS输出文件(后缀为list)n临时数据集(放在work中,关闭系统会自动删除)和永久数据集data sastrain.oranges;SAS文件的2级命名方式:目录.文件名work目录和其他目录使用Libname语句创建永久数据集,libname 自建目录名 目录地址;libname例libname zhao 'd:sas新建目录zhao,物理位置是d:sas'&
10、#39;data zhao.aa永久数据集,二级命名方式; input a变量 ;cards; 1;run;建立SAS数据集的5种方法1.data己输入数据建立。Orange例利用cards手工输入数据2、data步利用set 语句建立。Set例data abc; set相当于复制命令 sasuser.business;run;proc print没有“data=”默认为打印最近的数据集,即abc;run可以在work目录中看到数据集abc,和sasuser中的数据集business是一致的;3、从外部调入。Infile例data abcd; infile 'D:SASdataxxxx
11、.dat从外部导入(不是sas的逻辑库)文件' input a b c;run;proc print;run;D:SASdataxxxx.dat用记事本打开,就是数据文本,没有变量名和样本序号4、利用“导入数据”功能建立。Id.xls例和其他格式文件的交互(1)有1个Excel文件,第一行为变量名。Sas系统在打开一个文件时对该文件独占,所以导入操作前将这个excel文件关闭“文件”-“导入数据”-对话框,默认“标准数据源”,选择合适的数据格式-“浏览”找到要导入的工作簿-选择该工作簿的工作表-“option”的参数选择-是否“变量名在第一行”-选择导入的excel数据保存在逻辑库的哪
12、个位置:选择库并给数据集命名-是否“存储刚才的导入过程”,不需要就直接finish(2)文本文件,无变量名的纯数据。选择“用分隔符分割的文本文件”“浏览”后作一些设置:分隔符的类型(空格键、Tab或一些特定字符)、变量名是否在第一行5、利用EFI(external file interface外部文件接口)功能导入。Column.dat例tests.dat例comma.dat例(1)用记事本打开column.dat后,是这样未经分割的日期数据:01MAR200502MAR200503MAR2005利用sas将日、月、年分开还是“文件”-“导入数据”-不再选择“标准数据源”,选择“用户定义的格式
13、”即EFI-“浏览”-保存-finish-新的界面,对数据作自由导入-“options”选项-设置外部数据的形式:每一个样本在一行或者每一条记录为多个sas数据行导入数据的风格:列表型(list)选择分隔符 自定义列(column)从第几列到第几列定义为一个变量变量生成方式:手工生成或自动生成变量默认类型:字符型或数值型从第几个记录开始缺失值是什么鼠标拖拽某几列,下面begin、end、length已经开始发生改变;命名“date”并add,于是新生成变量“date”,如法炮制产生变量“month”和“year”关闭菜单,提示是否保存,保存为新的数据集(2)tests.dat如下:2458 M
14、urray, W 72 185 128 12 38 D 2462 Almers, C 68 171 133 10 5 I 2501 Bonaventure, T 78 177 139 11 13 I 2523 Johnson, R 69 162 114 9 42 S 2539 LaMance, K 75 168 141 11 46 D 2544 Jones, M 79 187 136 12 26 N 2552 Reberson, P 69 158 139 15 41 D 2555 King, E 70 167 122 13 13 I 2563 Pitts, D 71 159 116 10 22
15、 S 2568 Eberhardt, S 72 182 122 16 49 N 2571 Nunnelly, A 65 181 141 15 2 I 2572 Oberon, M 74 177 138 12 11 D 2574 Peterson, V 80 164 137 14 9 D 2575 Quigley, M 74 152 Q13 11 26 I 2578 Cameron, L 75 158 108 14 27 I 2579 Underwood, K 72 165 127 13 19 S 2584 Takahashi, Y 76 163 135 16 7 D 2586 Derber,
16、B 68 176 119 17 35 N 2588 Ivan, H 70 182 126 15 41 N 2589 Wilcox, E 78 189 138 14 57 I 2595 Warren, C 77 170 136 12 10 S 导入,进入EFI的界面,options:Column,manual,character确定先拖拽1-4列,命名为a选第二个变量的时候拖拽长一点,全部选进来,命名为b若list,可指定空格键为分隔符(3)comma.dat如下: 1,2,3,42.5,3.6,3,5 单纯由逗号分割,共4列List:分隔符选择逗号,去掉blank(按住ctrl点击原来选择的B
17、lank)Automatic,不用拖拽导出数据:“文件”-“导出数据”-选择要到处的sas文件和要导出为何种格式,保存在地址,给导出的文件命名,是否保存导出过程Analyst模块界面 文件:按sas名称打开:在逻辑库里打开一些sas文件 打开新查询; 打开sas一些程序文件 打开现有的查询 编辑:模式:浏览 编辑 查看 工具:样本数据和其他的功能选项 数据:对数据作操作,过滤、排序、随机抽样、变换 报表:生成一些报表 图形:生成一些图形 统计:较多功能数据视图:正在分析的数据及其具体内容 “文件”-“打开”-“fly”数据集,呈现修改其中数据,发现不能通过键盘改动(Browse浏览状态,保护作
18、用),在“编辑”-“模式”中修改状态,显示Edit编辑状态“工具”-“样本数据”,创建在“sasuser”,“全选”下面的数据集,即生成下面这些样本数据,供我们在学习sas时作为练习。“打开”table(一个真实的问卷调查数据,300个样本,想实现抽样) - “数据”“过滤”“取数据子集”-“age”,“operators”中的“GT”,拉到最下面“look distinct values”-在出现的所有age变量取值中选择-ok,实现了过滤“数据”“随机抽样”-如:100个样本 “数据”中的其它命令 对程序提取他的代码:“图形”“散点图” - 做完这个操作后,出现“code”,即菜单式的操作
19、,如果用程序是如何实现的。可以进行代码的学习,以后可以在这个程序上稍作修改得到相应的代码。 假设检验“统计”“假设检验” 非常强大的统计功能 SAS运算符(operator例)n算术运算符:* / */*乘方*/n比较算符:=(EQ) =(NE) >(GT) <(LT) >=(GE) <=(LE) in/*变量的值在某一个范围*/n逻辑算符:(AND) (!)(OR)()(Not)n其它:><(最小值) < >(最大值) |(!)(连接)例:if variety in ('navel','valencia') th
20、en total=total*10; if (flavor<texture & variety='mandarin') then total=total*100; a=flavor<>texture*2; b=variety|'.var加后缀' 字符的比较(operator_char例)n1、按机器使用的字符排列次序(ASC)从左到右被比较。在OFFICE-WORD中“插入”“符号”可以看到常用字符的ASC码。n2、两个不等长的字符串被比较时,系统在较短的字符串后自动添上空格n3、在比较符后加冒号,则只比较首字母data; input
21、(a b cA、b、c使用同一种变量类型,都是字符串型) ($); if a>b then result1='true ' else result1='false' result2='Fox'<>'Fox '/*result2变量的长度 由最长的字符串决定*/ result3='Fox'<>' Foxs' if a只比较a的首字符和S的大小>:'S' then result4="Great than S" cards; GRAY
22、 ADAMS G TOM TOMA T Sam Robe S sa SA g s | a b c ; run; proc print; run; 运算次序一n在括弧里的表达式先计算n第一级:* ()前缀,即表示正负>< < >n第二级:* /n第三级:n第四级:|n第五级:其余比较算符n第六级:第七级:运算次序二n对于相同优先级的算符,左边的运算先做。但有两个例外:n1.对最高优先级,右边的运算先做,即乘方右边先算n2.当两个比较算符围着一个量时,这个表达式看成是有一个and 出现一样被计算。如:12age< 20,等价于:12age & age<2
23、0 SAS函数一(部分)n数学函数:abs()、max ()、min ()、mod (x, y)取余sign (x)、sqrt (x)、 sum ()、 mean ()、exp (x) 、log (x)、log10 (x)、log2(x) 、sin (x)、arsin (x)n截取函数:ceil (x)比x较大的整数值floor (x)、int (x)round (x,n)对x保留n位四舍五入n字符函数:index (S, S1)在s中查找s1substr (s , p, n)在s中从第p位开始截取n位字符scan(s2,n)在s2中查找第n个字符upcase(s)将字符串s转换为大写comp
24、ress(s,s1)在s中将s1压缩掉nSAS系统存贮日期值为1960年1月1日到指定日期之间的天数nSAS存贮时间值为从午夜开始到指定时间的秒数n日期时间值存贮为1960年1月1日午夜到指定日期时间之间的秒数n日期时间函数:weekday ( )返回周几 day()返回几号month()返回月份qtr()返回季度year()返回年份nYearcutoff 选项规定两位数的年份含义n概率统计函数:probnorm (x)、n (of X1-Xn)、nmiss ()、var (of x1-xn)、std (of x1-xn)n随机数函数:rannor (seed)ranuni (seed)nFu
25、nctions例data bbb; input x1-x5 x6 $ date yymmdd15年月日共占15位的日期形式输入date变量.; /*format date yymmdd10.;*/ format date weekdate12.; x7='o' x8='I am a student' /*以下是数学函数*/ a1=max(x1,x2); a2=sum(x1,x2); a3=sign(x3); a4=sqrt(x5); a5=mean(x1,x2); /*以下是截取函数 */ b1=floor(a5); /*以下是字符函数*/ c1=index(x
26、6,x7); c2=substr(x6,3,3); c3=scan(x8,2); c4=upcase(x8); c5=compress(x6,x7); /*以下是时间函数*/ d1=weekday(date星期几的返回?); d2=year(date); d3=qtr(date); /*以下是概率函数*/ e1=probnorm(0); e2=n(of x1-x5); e3=nmiss(of x1-x5); e4=var(x1,x2); e5=std(x1,x2); /*以下是随机函数*/ f1=ranuni(1); cards;1 2 3 5 -6 amazon 2004/9/223 5 0
27、 8 0 box 1960/1/29 10 -7 9 4 check 1960/1/17 6 . 1 8 delete 1959/12/31-2.5 -2.3 3 1 2 desk 2005/9/29 ;run;proc print;run;SAS/Insight模块 1、界面介绍2、Fill values 功能3、Extract 功能4、Edit/windows/tool菜单使数据探索色彩缤纷(注意选项设置)5、打开分布的窗口之后主菜单Tables、Graphs、Curves菜单才被开放。Business, Air数据集示例n其他功能:1、分布(输出大多数常用的统计量)2、拟合(回归分析)3
28、、多元(方差分析)DATA步n文件操作语句n运行语句n控制语句n信息语句DATA步流程nDATA语句标志了数据步开始,并指定了数据步结束时要生成的数据集名字。n每次读入一行数据,读入后执行数据步中的其它语句,循环数据步读取整个数据。n_N_变量表示DATA步已经执行的次数n_error_变量值为1时表示程序出错nFlow例data flow; /*put x= y= z= _n_;*/ input x y; z=x+y; put x= y= z=; put _n_= _error_=; cards;10 20100 2001000 2000;run;DATA步流程(Flow1例)n读外部数据时
29、,数据步迭代(即每一次)的开始把变量的值置为缺失值,有几种情况例外:1、retain语句提到的变量2、sum语句中创建的变量3、数组_temporary_中的数据元4、file和infile语句选项中创建的变量5、自动变量n读sas数据集时,只在第一次迭代时把变量值置为缺失,以后变量保留其值直至新值写入nDATA语句的选项DROP选项(不列出某些变量)KEEP选项(列出某些变量)LABEL选项(给数据集加标签)RENAME选项(重命名变量)nData例data new1(drop=z); set flow;run;data new2(keep=x); set flow;run;data new
30、3(label='the new3 dataset'); set flow;run;data new4(rename=(x=xx y=yy); set flow;run;proc print data=new1;run;proc print data=new2;run;DATA语句n数据集名字:(data2例)data _data_; set flow;run;data _null_; set flow; u=x+y+z; put u;run;/*data _last_; set flow;t=x+y;run;*/proc print;run;1、data语句后无数据集名字,则
31、自动生成 data1, data2等为数据集名字,相当于data _data_;2、data _null_;不产生实际的数据集,只是把内容暂存于内存,以供put语句等读取结果,可以节约计算机资源3、data _last_;以最近产生的数据集命名并取代其内容。Input语句n分组格式:input (g1-g5) (3*7.2 , 2*5.2); input (a b) ( $5.)input (a b) ($ , 5.)n无需分行而按变量连贯读数据n固定该数据行;用于需要多个input语句同时读取一行数据。input例data; input x ; cards; 1 2 3 4 ; run; p
32、roc print; run;Input例data ; input type $ ; if type='c' then input course $ prof $; else if type='s' then input name $ id 3.2; cards; c math zxs s zhao 58888 ; proc print; run;n利用n +n #n 进行指针控制input1例data; input 1 x 5.2 6 y 2.1 +2 z #2 xx; cards;234;proc print;run;n几个特殊符号的用法(: & )
33、: 读值时第一次遇到分隔符、或是数据行末尾、或是读满列数而结束 字符型输入值可以嵌有一个或几个空格 字符型输入值保留引号(与infile 语句中选项dsd一起使用才有效)nInput2例data topics9; infile datalines dsd; input speaker :$15. title $40. location & $10.; datalines; Whitfield,'Looking at Lift',Blue Room Puentes,"Life After the Revolution",Red Room Townsen
34、d,"Peace in Our Times",Green Room ; proc print ; run;Cards语句nCards语句与datalines语句可以通用n如果输入数据中含有分号,可用cards4语句或datalines4语句,同时,数据结尾用4个分号表示数据输入结束nCards4例data; input number citation $50.; cards4;1 Berry2 LIN ET AL., 1995; BRADY, 19933 BERG, 1990; ROA, 1994; WILLIAMS, 1992;run;proc print;run;Put
35、 语句nPut语句负责在log窗口输出一些结果,file print选项可把输出转移到output窗口nPut _infile_ (输出最新的数据行到SAS log 窗口)nPut _all_ (输出所有变量的值)nPut _page_ (输出新页)nPut例data; /*file print;*/ /* change the output window*/ put 1230*'SAS学习 ' run; proc print ; run;put1例data put; input x y; z=x+y; put _infile_; /*put _all_;*/ put _n_=
36、; cards;10 20100 2001000 2000;run;File 语句nFile print 把put语句产生的输出结果转移到output窗口nPut例data; /*file print;*/ /* change the output window*/ put 1230*'SAS学习' run; proc print ; run;By 语句n在DATA步中,SAS系统对每个BY组创建两个临时变量:First .variableLast .variable它们用来区别每个BY组的第一个和最后一个观测nBy例data by; input state $ city $
37、month x;cards;nc a 1 3.02nc a 2 2.1nc a 3 4.03nc b 1 5.03nc b 2 6.3nc b 3 7.3va c 1 8.1va c 2 8.2va c 3 9.3va d 1 10.8va d 2 11.1va d 3 31.2;run;data by1; set by;by state;file print;if x=8.1 then put _all_;run;/*data by2; set by; by state city month; file print; if x=8.1 then put _all_;run;SAS的模块Ana
38、lyst模块n具有其他菜单操作软件的大部分数据处理功能n表的编辑模式(Browse | Edit)n浏览和存贮程序代码功能(work.by数据的按组汇总)Set语句n使用set语句复制数据集nPoint选项指明要读入的记录序号set 数据集 point=指针变量;可用于抽样,一般与output语句连用nNobs选项创建一个临时变量用来存储数据集的观测总数n见set例data abc; set sasuser.business;run;proc print;run;point例data zxs; do n=2 to total; set sasuser.flow point=n nobs=tot
39、al; /*if _error_=1 then abort;*/ output; end; stop; run;PROC PRINT data=zxs;RUN;nSet语句可以串接多个数据集,形式如下nData 数据集; set 数据集A 数据集B ; <by 变量;>Run;nRename选项负责改名;in选项产生变量负责记录观测来自该数据集;n见set2例data a; input id ming $ sex $ ; cards; 1 MARY F 3 ANN F 4 TOM M ;data b; input id name $ sex $ ; cards; 2 JOSE F
40、5 ERIE M 6 MAY F 1 MARY M; data result; set a(rename=(ming=name) b(in=inb); *by id; if inb=1 then bonus=100;run;proc print; title'串接数据集'run;串接数据的三种形式:1、相同变量的数据集连接2、不同变量的数据集连接3、按顺序连接数据集,即连接数据集后,再按某变量的值进行排序,这种情况不允许排序变量有重复的值。Merge语句n使用Merge语句并接多个数据集,形式如下nData 数据集;merge 数据集1 数据集2 ;by 变量;run;n见merge例data person; input name $ sex $; cards;MARY FANN FTOM M ;data place; input name $ city $ region; cards;MARY MIAMI 2A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料员岗位面试问题及答案
- 广东省揭阳市产业园2025届化学高一下期末综合测试试题含解析
- 天津耀华嘉诚国际中学2025届高二化学第二学期期末预测试题含解析
- 湖北省仙桃、天门、潜江三市2025届高一下化学期末监测试题含解析
- 北斗监控动态管理办法
- 农村产权交易管理办法
- 保安制服收缴管理办法
- 北京招聘医疗管理办法
- 制程物料标识管理办法
- 新质生产力背景下元宇宙赋能图书馆数字化转型的策略与挑战
- 广州市艺术中学招聘教师考试真题2024
- 工业自动化设备保修及维修管理措施
- 期末作文预测外研版七年级英语下册
- 2025-2030中国儿童鱼油行业销售动态及竞争策略分析报告
- 统编版五年级升六年级语文暑期衔接《课外阅读》专项测试卷及答案
- 小小理财家课件
- DB43-T 2622-2023 医疗导管标识管理规范
- 译林版一年级下册全册英语知识点梳理
- 案场物业制度管理制度
- 护理事业十五五发展规划(2026-2030)
- CJ/T 316-2009城镇供水服务
评论
0/150
提交评论