• SAS基础语句


    一、 新建逻辑库

    Libname 逻辑库 路径”;

    Libname ana “C:DesktopSAS培训”;

     

    二、 导入数据表

    1、 手工导入

    直接从文件-导入数据”,从外部导入excelcsv格式的数据表。

     

    2、 代码导入

    proc import 

    datafile="D:ase.csv"

    out=ana.limit_base replace;

    getnames=yes;/*以第一行为变量名称*/

    delimiter=','; /*分隔符*/

    GUESSINROWS=225409;/*SAS默认读取前20行判断数据类型,故可能判断错,需将此参数设置大一点*/

    run;

     

    三、 数据加工(data

    1、 复制数据set

    Data test1;

    Set test;

    Run;

    2、 保留字段keep

    Keep 字段名

    Data test2;

    Set test;

    Keep cust_no credit_dna4;

    Run;

    3、 删除字段(drop

    drop字段名

    Data test3;

    Set test;

    drop cust_no credit_dna4;

    Run;

    4、 字段重命名rename

    Rename 字段名=新字段名

    Data test4;

    Set test;

    rename cust_no=cust_no_1;

    Run;

    5、 字段运算

    Data test5;

    Set test;

    C=a+b;

    Run;

    6、 条件判断(if……then……

    If 条件 then 结果

    Data test6;

    Set test;

    If 0<=a<10 then z=”01.[0,10)”;

    else if 10<=a<20 then z=”02.[10,20)”;

    else if 20<=a<30 then z=”03.[20,30)”;

    else z=”04.>=30”;

    run;

    7、 删除记录(delete

    Data test7;

    Set test;

    If a=10 then delete;

    Run;

    8、 筛选记录whereif

    1where

    Data test8_1;

    Set test;

    Where x>10;

    Run;

     

    2if

    Data test8_2;

    Set test;

    Where if>10;

    Run;

     

    Data test8_3;

    Set test;

    Z=x+y;

    If z>10;

    Run;

    9、 数据纵向合并(set相当于sqlunion

    Data test9;

    Set table_1 table_2;

    Run;

    10数据横向合并merge

    Merge之前需对数据集按照关联字段进行排序

    1)左连接相当sqlleft join

    Data test10_1;

    Merge table_1(in=a) table_2(in=b);

    By cust_no;

    If a;

    Run;

    2)内连接相当sqlinner join

    Data test10_2;

    Merge table_1(in=a) table_2(in=b);             

    By cust_no;

    If a and b;

    Run;

    3)全连接相当sqlfull join

    Data test10_3;

    Merge table_1(in=a) table_2(in=b);

    By cust_no;

    If a or b;

    Run;

    4)排除

    数据a中而不在b

    Data test10_4;

    Merge table_1(in=a) table_2(in=b);

    By cust_no;

    If a=1 and b=0;

    Run;

    四、 数据分析proc

    1、 排序(proc sort

    Proc sort data=test out=test1;by cust_no month descending;run;

     

    2、 频数分布(proc freq

    (1) 单变量频数分布

    Proc freq data=test;

    table x1 x2;

    run;

    (2) 多变量频数分布

    Proc freq data=test;

    table x*y;

    run;

    3、 一般描述统计(proc means

    x分组计算y统计值

    Proc means data=test;

    Var y;

    Class x;

    Run;

     

    4、 详细描述统计(proc univariate

    x分组计算y统计值

    Proc univariate data=test;

    Var y;

    Class x;

    Run;

    5、 sql

    proc sql;

    create table test5 as

    select cust_no

    ,x1

    ,x2

    From table1 a

    Left join table2(drop=x3) b on a.cust_no=b.cust_no;

    Quit;

  • 相关阅读:
    Linux mii-tool 命令
    MySQL 主从复制
    MySQL 备份与恢复
    SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/
    网管邮件配置
    ORA-10873
    Exception in thread "main" java.lang.UnsatisfiedLinkError:
    安装 ORACLE 11G出现Error Message:PRVF-7535
    mount /dev/sr0 /media/cdrom you must specify the filesystem type
    NBU 还原windows ORACLE数据库(BW)
  • 原文地址:https://www.cnblogs.com/xitingxie/p/10685553.html
Copyright © 2020-2023  润新知