sas入门1回顾:
不同类型变量的输入格式:
数值型绝大多数情况下变量后不用加任何格式;
字符型必须要在变量后加$;
日期型必须要在变量后加相应的日期格式
注意:日期型变量与后面的日期格式之间一定要空格。格式后如果指定宽度值,后面要加点号(.)。
不同类型变量的输出格式:
数值型绝大多数情况下无须指定输出格式;
字符型绝大多数情况下无须指定输出格式;
日期型根据你的需要决定是否指定输出格式
注意:s、d、p、c、b、n等分别表示slash(/)、dash(-)、point(.)、colon(:)、blank(空格)、nothing(无),只用于输出格式,不用于输入格式
如果输入的变量中有多个变量必须指定格式(如多个日期型变量):通用方法是用冒号(:)
input id:$20.
day1:yymmdd10. day2:yymmdd10.;
注意:一定要指定一个大的宽度值。但日期型只能是6-32之间,字符型可以指定更大(如100或1000)。
(一)SAS数据集的横向合并和纵向合并
纵向set;横向merge
语句:
data数据集;
merge 数据集1数据集2…;
by 变量1变量2…;
run;
(二)将SAS数据集拆分为若干个子数据集
1.对观测的选择:if(推荐) 和 where两个条件语句实现。
例:假定有如下的数据集aa,包含性别和年龄两个变量。现在想找出大于40岁(age>40)的男性(gender=”M”)。
data bb;
set aa;
if gender=”M” and age>40;
proc print; run;
2.对变量的选择:drop 和 keep 语句。
例:
data ht1; /*用drop语句实现*/
set ht;
drop id name date1 date2;
proc print; run;
(三)将SAS数据集按一定规则排序
PROC sort 语句:nodupkey(删除重复值)、nouniquekey(删除唯一值)、by语句指定变量的排序,默认升序,descending降序。
例:
proc sort out=ht1 nouniquekey;
by date descending age; /*根据date升序排序和age降序排序*/
proc print data=ht1;
run;
(四)将SAS数据集进行转置
proc transpose 语句:
(五)对比多个SAS数据集是否一致
proc compare语句:
base=数据集 compare=数据集 nosummary的作用是不显示一些概括性的结果。
(六)对数据集按你的需求进行修饰
1.对变量名的注释:Lable语句:
input id gender age;
lable gender="性别" age="年龄";
2.对变量的值进行注释:
proc format;
invalue: 定义输入格式
value:定义输出格式
例:
proc format;
invalue A low-<40=30 40-<50=40 50-<60=50 60-high=60;
value gfmt1="male" 2="female";
data age;
input id gender age A.;
format gender gfmt.;
(七)如何输出丰富多彩的数据样式
proc sort; by gender;
proc print data=baseline noobs label;/*选项noobs要求不显示最左侧的obs列*/