全球最具影响力的数据科学技术社区,助你轻松玩转大数据&数据科学

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
开启左侧

SAS零散知识总结

[复制链接]
发表于 2018-9-23 21:13:01 | 显示全部楼层 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1,变量名命名规范:以字母或者下划线开始,可包含字母、下划线、数字,且不超过32个字符;
2,INFILE用于读取外部数据文件,一般于FILENAME(和LIBNAME用户一致,但路径要精确到文件名(、、.TXT/DAT等))连用。
3,INPUT语句用于定义字段变量,可用于读去外部文件(INFILE)、CARDS、DATALINES。
4,变量类型转换规则:①赋值:以赋值目标的变量类型而定自动转化;②做运算→数值型;③做字符连接→字符型;④经过了字符处理函数→字符型;
5,字符和数值型变量在数据集中的显示:①字符型→右对齐→缺失为空格;②数值性→左对齐→缺失为“.”;
6,在DATA步中一般情况下出现的字符都会默认为一个变量,若想写字符型常量则要用“”、‘’括起来。(若字符常量本身还有“”则用‘’括起来,相反则用“”括起来。)
7,日期型常量包括:日期(DATE)、时间(TIME)、日期时间(DATETIME)3种。这三个类型的常量必须用引号括起来并且后面加常量对应的字母D、T、DT,表示日期、时间、日期时间。
8,注意:十六进制数常量必须用单引号括起来,后面加字符X。
9,筛选语句IF和WHERE,WHERE是在编译阶段执行,即程序执行之前就先筛选,大大提高程序效率。IF语句在执行阶段执行,可用于新建变量的筛选。(一般情况下能用WHERE则用WHERE,缺点是:WHERE语句对变量类型的兼容性较低,严格控制“=”两边的数据类型相同,若多个WHERE语句出现只认最后一个WHERE语句),验证程序如下:
[AppleScript] 纯文本查看 复制代码
DATA A;
INPUT ID X $;
CARDS;
1 R
2 T
4 O
5 P
;
RUN;
PROC PRINT DATA=A;
WHERE ID=1;
WHERE X="P";
VAR ID X;
RUN;
输出结果为:
SAS 系统

ObsIDX
45P


10,格式修饰符:①:,例如20.从非空格开始读,知道遇到空格、溢出、数据结束为止。②&,例如&20数据中还有一个或者一个以上的空格,直到遇到连续两个或两个以上的连续空格、或者溢出为止。③~,L例如~&20.数据中含有引号或者分隔符号的数据。
11,指针控制:①@N:指从第N列位置开始(包含空格);②N1-N2:读第N1列到第N2列之间的数据;③@,指针停在当前位置,知道遇见下一个INPUT;④@@,反复写进“@@”前面的变量中(在外部文件的一行数据要携程SAS数据集的多行时使用)。验证如下;
DATA A;
INPUT ID X $ @@;
CARDS;
1 R 2 T
4 O 5 P
;
RUN;
DATA A;
INPUT ID X $ @@;
CARDS;
1 R
2 T
4 O
5 P
;
RUN;
以上两段代码输出的结果一样都是四条观测;


12,INPUT语句:定义变量并读入数据到数据集(数据流→数据集),PUT语句定义要从数据集中读出数据变量(数据集→数据流);
13,INFORMAT:以什么格式输入,FORMAT:以什么格式输出。(例如:INFORMAT SY_DT MMDDYY10.;意为告诉SAS这是一个日期时间型的数据,请存为日期时间型数据。)
14,OPTIONS,用来改变SAS系统的默认设置,程序可以查看所有选项:
PROC OPRIONS;
RUN;
obs:表示需要处理的最后一行observation,如果指定其为max,就表示处理到最后一条observation
  firstobs:表示需要从第几行observation开始处理,默认是1observation
  msglevel:默认值是N,仅打印notes,warnings和error信息,如果设为I,则除了打印N选项的信息,同时打印附属信息,包括索引的使用,合并处理,排序等附加信息
  errors:指定最多有多少错误可以在log中显示(也可以写成error=num,编译时按errors处理)
  macrogen:将宏扩展的结果显示在log里
  compress:是否采用压缩格式存储数据集
  missing:指定用于替换missing value的字符,默认是(.)
  ps(pagesize):输出时每页行数
  ls(linesize):输出时每行字数
  center/nocenter:指定输出是否中间对齐
  date/nodate:指定输出是否包含日期
  replace/noreplace:如果dataset已经存在,指定是否覆盖
  print/noprint:指定是否在output窗口输出
      date:输出页码显示日期      nodate:输出页码不显示日期
     center:输出页居中     nocenter:输出页不居中
    number:有页码    nonumber:无页码
mprint 打印宏的每一次执行过程在日志中  nomprint 不打印


楼主热帖
168大数据(www.bi168.cn)是国内首家系统性关注大数据科学与人工智能的社区媒体!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2020-9-24 01:19 , Processed in 0.054376 second(s), 18 queries , Xcache On.

Powered by BI168社区

© 2012-2014 海鸥科技

快速回复 返回顶部 返回列表