SAS零散知识总结

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语句),验证程序如下:

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 系统
Obs ID X
4 5 P

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 不打印、、

时间: 2024-10-12 20:10:24

SAS零散知识总结的相关文章

每天遇到的零散知识汇聚

3.14 https://zhidao.baidu.com/question/1894472665628866420.html 3.15 go语言锁 go语言驱动msyql golang判断文件或文件夹是否存在 go-import下划线的作用 golang源代码换行问题 golangerror 进一步认识golang中的并发 Go语言如何并发超时处理详解 golang超时控制

sql注入零散知识

1.order by解释: 在SQL语言中,order by语句后面加上字段名,就可以对查询结果排序.但他有一种特殊用法,就是在后面不添加字段名,而添加数字的方式.添加数字的时候,表示以该表第几个字段进行排序.只有当数字小等于字段数时,才有效.所以通过这个条件,可以判断一个表中存在多少个字段.例如order by 10 返回正常,而order by 11页面返回错误,则说明数据库存在10个字段. 2.union select 1,2,3,4,5,6,7,8,9,10,11 from 首先解释一下

Oracle数据库零散知识09 -- DBLink的创建(转)

通过创建database link实现Oracle跨数据库查询的方法 在Oracle本地数据库端执行赋权dbuser帐号 SQL> grant create database link to dbuser; 配置本地数据库服务器的tnsnames.ora文件 $ vi $ORACLE_HOME/network/admin/tnsnames.ora 增加需要远程连接服务器的连接配置,如: ORCL_REMOTE =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(

Oracle数据库零散知识05 -- 表创建,修改

1.表的创建 Create table student02(sno number); 2.表的删除 Drop table student02; 3.表的重命名 Rename student02 to student01; 4.表的修改 Alter table student01 --列的修改 Add ob number Modify ob varchar2(2) Rename column ob to obnew Drop column obnew --约束 Add constraint pk_

ACM零散知识

定理与方法专区: 1.两点间的曼哈顿距离如果为偶数,那么两点间可以走偶数步到达 2.求小于等于n 的素数的个数.(即欧拉函数) 100=(2^2)*(5^2)    num[100]=(2+1)*(2+1)=9; 10=2*5            num[10]=(1+1)*(1+1)=4; 48=(2^4)*(3^1)    num[48]=(4+1)*(1+1)=10; 3.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数.如果

Oracle数据库零散知识07 -- Materialized view(转)

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处.1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性:而ON COMMIT是说,一旦基表有了CO

oracle 零散知识汇集

1. Select '登陆' + 2 From dual会报错: ora- 01722 无效数字,原理是oracle把'登陆'当成数字来和2进行加法运算. Select '登陆'|| 2 From dual没有问题,会把2作为字符来处理 2. nlssort(title,'NLS_SORT=SCHINESE_PINYIN_M')按照拼音来排序

java 零散知识汇总(初级)

一.instanceof 运算符用法: instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. public class Temp2 { interface A { } static class B implements A { } static class C extends B { } public static void main(String[] args) { A a = null; B b = null; boolean res; Syste

oracle数据库零散知识01

1,rownum 是一个虚列,使用时必须包括1才能使用,rownum = 1,rownum < 10;  rownum = 2是不可以的: 2,if case loop 要加end结束,end if: 3,外键,foreign key(s) references table_name(pk) 4,创建一个表,复制内容 create table t_1 as select * from t_2; 5,存在一个表,复制内容 insert into t_1 select * from t_2; 6,清