通用要求:
- 标识符或数据之间用空格分隔,例如:input s$;
- 使用分号分隔语句;
- 使用“Run”分隔模块;
- 自定义名称最多包含8个符号,首字符为英文字母,名称不能有保留符号,如:空格 - . , ; … $等;
- 缺失数据“.”表示;
- 文本变量名首次出现时使用“$”作为后缀;
- 程序可以包含注释语句,以“/*”开始,以“*/”结束,或以“*”作为行始符表示该行为注释语句;
- 除数据外,SAS程序不区分英文字母大小写。
运算符
关系运算符
数据文件存储:
libname D1 “d:\mydata” ; 定义库(路径)
data D1.TEST01;
input s$ x y z;
cards;
A 1 2 3
B 4 5 6
C 7 8 9
run;
注: d:\mydata为已经建立的磁盘文件目录。
文件特点:存储在外存、共享。
导入EXCEL文件:
option compress = yes validvarname = any; 避免中文字符导入出错
PROC IMPORT OUT= D1.test02
DATAFILE= "D:\2-SAS_DATA\A1.xlsx"
DBMS=EXCEL REPLACE;
RANGE="Sheet2$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
导出数据至excel:
PROC EXPORT DATA=D1.Bb OUTFILE = 'd:\2-SAS_DATA\b1.xlsx' DBMS=xlsx
REPLACE;
RUN;
也可用LIBNAME导出:
libname myxlsx EXCEL 'd:\2-SAS_DATA\c1.xlsx';
data myxlsx.tests1 (dblabel=YES);
set work.aa;
run;
libname myxlsx clear;
保留部分字段:
Data test03(keep=sname memberid);
infile “c:\sasv9\data\a.txt” ;
input sn$ n$ c$ t$ m;
*drop n$ c$ t$ ;
Run;
删除部分不符合条件的记录:
Data test02;
infile "c:\sasv9\data\a.txt”;
input sn$ n$ c$ t$;
if c^=”meb0101” then delete;
Run;