统计211

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4654|回复: 0
打印 上一主题 下一主题

SAS教程简单摘录

[复制链接]
跳转到指定楼层
1
发表于 2011-7-1 13:33:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       一简介
  1.命令
  keys 快捷键
  include 'filename' 引入指定文件
  libname 确认数据库内容
  recall 调出上次执行的程序
  submit 提交 F3
  二 SAS数据管理
  1.指定SAS库标记
  libname course 'f:\course';
  2.两级名
  库标记.filename
  三原始文件转换成数据集
  数据步 data 过程步 proc
  1.数据步 data
  infile '文件名';(若需直接嵌数据,用cards代替)
  input ...;(读入模式:
  column,formatted,list,named)
  两阶段——
  1)编译 PDV存放当前观测
  2)执行
  2.column模式(适合固定列、标准字符数字)
  input 变量名1 $1-12 变量名2 $4-18
  $:变量为字符型
  3.formatted模式
  input @n/+n 变量名 informat ...;
  输入指针控制符:@n(移到第n列)/+n(后移n列)
  4.SAS日期
  MMDDYYw.
  DDMMYYw.
  DATEw.
  ...
  5.firstobs=和obs=选项
  选择记录段
  四建立、浏览、编辑数据集
  1.字符:<=200(以ASCII码存放)
  数字:8字节(以浮点数存放)
  2.输入informat
  输出format
  3.建立
  proc fsedit new=数据集名;
  end;进fsedit窗口(add添加记录;end存盘;cancel退
  出)
  4.修改
  proc fsedit data=数据集名;
  可以用where获得数据集的子集;delete删除
  5.浏览
  proc fsview data=数据集名;
  drop命令去掉不需要显示的变量;where用上;where undo取消
  6.viewtable
  表编辑器
  五增删改数据集的记录或变量
  1.赋值语句
  variable=表达式;
  注: ** 幂运算 rasise=x**y;
  || 字符串拼接 str=str1+str2;
  2.SAS函数
  function-name(参数1,参数2,...)
  total=board+trans+nonrev;
  total=sum(board,trans,nonrev);
  区别:若一项参数为空,sum()仍可计算,total不然
  3.条件转移语句
  if ... then [do; .. end;]
  [else [do; .. end;]]
  注:dest='DFW'中变量名DFW大小写敏感
  可由upcase(argument)函数解决
  如:upcase(dest)='DFW'
  4.length语句
  length variable(s) $length;
  5.drop=和keep=选项选择变量
  删除
  保留
  6.if语句选择观测
  如
  175;
  7.delete语句(不常用)
  if ... then delete;
  8.SAS日期常数和日期函数
  常数: 'ddMMMyy'D
  函数: year(date);...
  9.set语句
  SET a;
  可从已存在数据集(old)中创建数据集
  DATA new|old;
  SET old;
  其他SAS语句;
  run;
  六合并与拼接
  1.SET语句拼接数据集
  DATA c;
  SET a b..;
  run;
  若有不同变量名,则相应空缺
  2.rename=选项
  重命名变量
  set a b(rename=(old=new));
  3.排序
  proc sort data=a out=b;
  by 变量名;
  run;
  4.合并
  data a;
  merge b c..;
  by 变量名列;
  run;
  5.in=选项
  a(in=0);观测不是来自数据集a
  a(in=1);观测来自数据集a
  _N_是执行数据步时自动产生的变量,循环执行次数的计数
  6.rename=选项
  也在变量名不同时用于重命名
  七制作报表报告
  1.产生简单列表
  proc print data=a;
  run;
  若省去data=a则显示最近的数据集
  2.noobs选项
  print过程中去掉obs列
  3.var语句
  控制变量出现与否及顺序
  4.选择数据集观测
  where
  ---between-and
  ---contains
  5.sum a b;
  计总和(列)
  6.数据分组和小计(按变量x分组)
  proc sort data=a out= b;
  by x..;
  proc print data=c;
  id m..;
  var y..;
  sum n..;
  by x..;
  run;
  7.id语句
  对报表修改
  8.按组分页
  pageby x;
  9.标题/脚注
  titlen 'hello';
  footnoten 'hello';
  10.label标签
  label x=''
  y=''
  ...
  11.split控制表头分割
  split='*'(*为分割符)
  12.format输出格式
  format x date7. y dollar10;
  13.定义用户化格式
  proc format;
  var $destfmt 'LON'='london'...;
  14.SAS系统选项
  options
  15.类变量,分析变量?p96
  16.tabulate过程
  proc tableulate data=a;
  class x;
  var y;
  table 页,行,列;
  run;
  n为频数
  17.table语句
  操作符控制表格格式
  符号 作用
  逗号,转另一维
  空格 表格连排
  星号* 交叉组合分组
  如: table a,b,c;三维表(页/行/列)
  18.控制表格形状
  tabulate的 format= 每格宽度
  table的 rts= 第1列宽度
  19.选择需要观测
  where x in('m','n');
  20.var定义分析变量后,默认为sum
  21.为表格加标签
  keylabel x='label';
  注:label<40,tabulate自动生成,无需label或split=
  八 SAS中使用sql
  表--SAS数据文件--文件
  行--观测--记录
  列--变量--域
  九 SAS宏
  系统信息
  条件执行数据步/过程步
  开发交互系统(%windows语句)
  产生与数据无关程序
  不同数据/过程步间传递数据
  1.%let语句
  定义宏变量
  %LET 宏变量=x;
  2.symput函数
  传递数据
  call symput(a,b);
  a:将要定义的
  b:宏变量值
  若字符串含引号则用双引
  3.SAS宏调用
  定义:
  %macro name(传递调用的变量,...);
  调用实体
  %mend name;
  引用:
  %name(参数);
  
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明|关于我们|小黑屋|联系我们|赞助我们|统计211 ( 闽ICP备09019626号  

GMT+8, 2025-4-19 21:02 , Processed in 0.077969 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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