从九月份开始打算学SAS
先看了看人民邮电出版的SAS应用统计分析
很快地看了一半 发现这本书可能更适合社科的学生学习 对于理科生不太系统 不太全面
于是开始看
THE LITTLE SAS BOOK
下面是我看书的情况:
p52-p75 9/21/2013 后面几章关于PC FILES的没怎么看
-p98 9/22/2013 Retain informats/formats/functions if statement
98-108 9/29/2013 shortcuts for variable names LIBNAME/TITLE/... WHERE
-138 10/1/2013 PROC mean/print TABULATE/REPORT
210-223 10/2/2013 MACRO 宏 感觉有点编程的意味了
178-192 10/5/2013 SET MERGE UPDATE
193-207 10/6/2013 IN WHERE AND OTHER DATA SET OPTIONS
下面是随书写的笔记
看了那么久的书 结果读一个EXCEL读了半天都读不了囧死了 下面是第一个程序 恩 关于读写数据的 注意INFILE后没有=
DATA TEST.TUTOR;
INFILE 'C:\Users\asus\Desktop\Tutors.csv' DLM=',';
INPUT ID $10. NAME $ TUTOR $;
RUN;
PROC PRINT DATA=TEST.Tutor;
RUN;
2.闲来无事 自己再读读文件玩儿
结果发现一个很有意思的地方
要是用了DSD之后 上面的 INPUT ID $10.就会出问题 读完了ID 然后读下一个向量 却遇到逗号 然后又跳过
最后的方法是加了冒号就行 。
还有读数据的时候SAS把()中的内容省略了DATA TEST.STU_INFO;
INFILE 'C:\Users\asus\Desktop\SAS\DATA\STU_INFO.csv' DLM=',' DSD MISSOVER;
INPUT ID :$10. NAME $ SEX $ RACE $ MAJOR $ TUTOR $ HOME :$20. TEL :$13. EMAIL :$30. NO_DORM $;
RUN;
PROC PRINT DATA=TEST.STU_INFO;
RUN;
然后试试TABULATE
PROC TABULATE DATA=TEST.STU_INFO ;
CLASS TUTOR;
TABLE TUTOR;
RUN;
结果发现程序居然区分了“XX ”和“X X” 但是显示出来又没有什么区别真是蛋碎
PROC TABULATE DATA=TEST.STU_INFO ;
CLASS SEX TUTOR;
TABLE SEX='' ,N='教师名'*(TUTOR='' ALL)
/BOX="各老师学生人数" MISSTEXT="0";
TITLE;
RUN;
加了些参数 让图更美观 cross*/concatenate空格 是设计表格用 还有BOX MISSTEXT VAR后变量是指呈现在表中的数据值 默认N
PROC REPORT DATA=TEST.STU_INFO NOWINDOWS HEADLINE;
COLUMN NAME SEX MAJOR TUTOR;
TITLE "学生信息";
RUN;
PROC REPORT 产生报表
PROC REPORT DATA=TEST.STU_INFO NOWINDOWS HEADLINE ;
COLUMN MAJOR SEX N;
DEFINE MAJOR / GROUP;
DEFINE SEX / GROUP;
BREAK AFTER SEX/ OL SKIP;
TITLE;
RUN;
用DEFINE 加分组等选项 用BREAK加横线 换行