精华内容
下载资源
问答
  • SAS入门操作

    万次阅读 多人点赞 2018-02-27 18:34:12
    SAS基础知识

    ##1.1 新建数据集
    libname chap1 'E:\sasdata\chap1';
    在E:\sasdata\chap1中新建一个逻辑库,E:\sasdata\chap1必须真实存在,其中保存着我们要调用的文件,同时路径名字尽量是拼音或者英文。chap1中的数据只有是SAS data set时才可以被直接调用
    data chap1.example1_1;新建永久sas数据集chap1.example1 前一部分为库名,后一部分为数据集名
    data work.example1_1; 或者work.example1_1 临时数据库保存在work下
    data 数据集名;
    input 变量名;
    card; 输入数据

    run;
    proc print data=数据集名; #将数据集显示在output窗口上
    run;

    eg:建立永久数据集

    libname classc "C:\Users\Administrator\Desktop\7\SAS-1024"; #创建逻辑库
    filename class "C:\Users\Administrator\Desktop\7\SAS-1024\class.csv"; #指定要调用的文件(同时为该文件的路径命名class,方便后面调用)
    data classc.class1;#在classc逻辑库中创建数据集class1(库名+数据集名)
         infile class#导入要调用的文件
    	 dsd;
        input name$ id$ test1 test2 gender$;
    run;
    

    一个逻辑库对应两个物理位置
    libname classc ("C:\Desktop\7\SAS-1024" "C:\Desktop\7\SAS-1025");
    逻辑库的查看与取消
    1.在log窗口查看逻辑库连接 libname 库名 list;
    2.在log窗口显示全部已设定的库的信息 libname ALL list;
    3.取消已经指定的库 libname 库名 clear;

    SAS数据集存储在SAS的逻辑库(library)文件集中,逻辑库是一个连接,将磁盘中存储的文件和SAS系统联系起来。逻辑库命名遵循命名规则
    1.1SAS标识符必须由英文字母,数字,下画线组成
    1.2第一个字符必须是英文或者下划线
    1.3标识符中字母不区分大小写
    1.4标识符长度不宜过长
    1.5逻辑库命名不超过8个字符,数据集,变量命名不超过32个长度

    ##1.2从外部导入数据
    ###1.2.1 import

    ###1.2.2 data step输入文件
    infile “外部文件的所在位置及名称”<选项>;#指定一个包含原始数据的外部文件,出现在input之前
    input 变量名1 变量名2…; #按列输入;格式化输入;列举输入
    按列自由输入

    data bank;
    infile "E:\SAS\SAS-Yan\lec3-170927\bank1.txt";
    input subj $1-3
               dob$4-13
              gender$14
              balance$15-21
              year 10-13
    ;
    run;
    proc print data=bank;
    run;
    

    格式输入
    input <列指针控制> 变量名 输入格式;

    data bank;
    infile "E:\SAS\SAS-Yan\lec3-170927\bank1q.txt;
    input @1 subj $3.
               @4 dob mmddyy10.
               @14 gender$1.
               @15 balance7.
    ;
    run;
    

    SAS有输入和输出格式,输入格式在input中使用,输出格式在format中使用
    用于输入有特殊格式的数据:日期,带小数的数字,含空格的字符串
    常用:
    W. 宽度为W位的标准数字(无小数)
    W.D 含小数的标准数字,总长为W位(小数点,负号各占一位)
    $W. 长度为W的标准字符串
    COMMAW.D 长度为W的数字,每三个数字用逗号隔开,且逗号占一位
    $CHARW 宽度为W且含有空格的字符串

    format中指定输出格式

    data bank;
    infile "E:\SAS\SAS-Yan\lec3-170927\bank1q.txt;
    input @1 subj $3.
               @4 dob mmddyy10.
               @14 gender$1.
               @15 balance7.
    ;
    format dob data9. balance dollar11.2;
    run;
    proc print data=bank;
    run;
    

    列举模式
    这种模式较为简便,但是变量名顺序必须和数据中相同,无法更改

    data bank2;
    infile "E:\SAS\SAS-Yan\lec3-170927\bank2.txt;
    length subj dob $10. #列举模式中每个变量默认最大读入长度为8,此语句可以修改最大长度
    input subj $
               dob $
               gender$
              balance
    ;
    run;
    title="list of bank2";
    proc print data=bank;
    run;
    

    ##1.3读入csv文件

    data contact;
         infile "E:\SAS\SAS-Yan\contact.csv"
    	 dsd;#将多个相连的分隔符由空格改为逗号,csv必加
    	 input name$ id$ test1 test2 gender$;
    run;
    title="contact.csv";
    proc print ;
    run;
    
    data contact;
         infile "E:\SAS\SAS-Yan\contact.csv"
              dlm=":" #标明分隔符,等号后内容根据数据中的具体分隔符来定
    	 dsd;
    	 input name$ id$ test1 test2 gender$;
    run;
    title="contact.csv";
    proc print ;
    run;
    

    查找dlm其他用法

    非标准格式读入
    1.一行多观测,空格作为间隔 input语句后中加入@@ 行保持符
    2.多行一观测,空格作为间隔 /表示下一行
    3.混合
    4.读取特定行

    data bank;
    infile "E:\SAS\SAS-Yan\lec3-170927\bank1q.txt" firstobs=3 obs=6;
    input @1 subj $3.
               @4 dob mmddyy10.
               @14 gender$1.
               @15 balance7.
    ;
    format dob data9. balance dollar11.2;
    run;
    proc print data=bank;
    run;
    

    ##1.4基于列的操作运算
    针对变量的操作:
    -生成新的变量
    –依据现有变量
    –不依据现有变量
    -删除已有变量
    -修改已有变量
    -给现有变量命名
    -set keep drop rename 常用函数 复合判断语句 do-end语句块

    fileneme myfile "E:\data\chap1\garden0.dat";
    data garden;
    infile myfile;
    input name$ tomato$ zucchini  peas  grapes;
    zone=14; *建立新变量并直接赋值
    type="home";
    zucchini=zucchini*10;*改变已有变量
    total=tomato+zucchini+peas+grapes;
    periom=tomato/total;*利用原有变量计算新变量
    run;
    
    data garden1;
    set garden;
          keep name total; *保留变量
    run;
    
    data garden2;
    set garden;
         drop zone type; *删除变量
    run;
    
    data garden3(replace=yes);新建立的garden3覆盖了garden2
    set garden2;
    drop name
        rename total=all;  *重命名变量
    run;
    
    data garden4(replace=yes);
    set garden;
    logtomato=log(tomato); *添加变量
    firstchar=substr(name,1,2); *添加变量,提取name前两个字母
    if grapes<50 then groupgrapes="low";*添加变量groupgrapes
    else groupgrapes="high";
    run;
    
    data garden4(replace=yes);
    set garden;
    logtomato=log(tomato); *添加变量
    firstchar=substr(name,1,2); *添加变量,提取name前两个字母
    if grapes<50 then groupgrapes="low";
    else  if grapes>=50 and grapes<100 then groupgrapes="med";
    else groupgrapes="high";
    run;
    
    data garden4(replace=yes);
    set garden;
    logtomato=log(tomato); *添加变量
    firstchar=substr(name,1,2); *添加变量,提取name前两个字母
    if grapes<50 then                *do--end 语句块,多变量嵌套
    do;
        groupgrapes="low";
        zone=16;
    else 
    do;
        groupgrapes="high";
        zone=12;
    end;
    run;
    

    ##1.5变量的运算
    ###逻辑运算
    EQ NE GT LT GE LE IN
    ###数值或文本型变量:
    取整(INT)
    对数(LOG)
    极值(MIN,MAX)
    均值(MEAN)
    求和(SUM)
    计数(N,NMISS)
    四舍五入(ROUND)
    ###日期型变量
    -year(date):
    -month(date)
    -day(date)
    -weekday(date)
    mdy(m,d,yr):生成ye年m月d日的sas日期值
    ###字符型变量
    lowcase(s),upcase(s):改变大小写
    substr(s,p,n):从字符串s中第p个开始抽取n个
    repeat(s,n):将s重复n次
    index(s,s1):查找s1在s中的位置
    length(s):返回s的长度
    tranwrd(s,s1,s2):从字符串s中把所有字符s1替换成s2后的结果

    ##1.6基于行的运算操作
    -排序 sort+by
    -提取部分观测
    –指定条件提取 if where
    –随机提取 surveyselect
    -添加新观测 append+base,data
    -删除已有观测:delete语句
    -修改已有观测

    *排序
    filename myfile "文件夹路径";
    data marine;
    infile myfile(lengths.dat);
    input name$ family$ length@@; 
    run;
    proc sort data=marine out=seasort nodupkey; *输出为数据集seasort,不加out时覆盖原有数据集;nodupkey删除冗余观测
    by family descending length; *先按family升序排列,再按length降序排列
    run;
    proc print data=seasort;
    title print data=seasort;;
    run;
    
    *提取指定条件的观测
    data seasort_whalel;
    set seasort;
    if Family="whale";
    run;
    *or
    data seasort_whalel;
    set seasort;
    where Family="whale";
    run;
    
    *where与by
    proc sort data=marine out=seasort_whale nodupkey; 
    where Family="whale";
    by  descending length; *先按family升序排列,再按length降序排列
    run;
    proc print data=seasort_whale;
    title "whales only (sorted);
    run;
    
    *随机抽取
    proc surveyselect data=marine method=srs n=5 out=sampled_marine;
    *从marine中抽取5个数形成sampled_marine,其后可以加seed=1以多次抽取相同的数
    run;
    proc print data=sampled_marine;
    run;
    
    *添加新观测(像原有数据集中添加一条或者多条记录)
    data temp(replace=yes);
    input name$ family$ length;
    datalines;
    aaa  shark 60
    ;
    run;
    proc append base=marine data=temp;
    run;
    proc print data=marine;
    
    *删除指定的观测
    data marine;
    set marine;;
    if family="" then delete; *删除缺失值
    run;
    
    data marine;
    set marine;
    if _n_=2 or _n_=3 then delete; *删除第2和第3个观测??
    run;
    
    *重编码
    data marine;
    set marine;
    if family="" then family="unknown";
    run;
    
    *转置(仅限于数值变量)
    PROC TRANSPOSE <DATA=输入数据集 OUT=转置数据集><选项列表>
    VAR 变量列表
    ID 变量
    COPY 变量列表
    RUN;
    
    libname chap1 "";
    proc transpose data=chap1.A out=chap1.TA name=course;
    /将数据集cha1.A转置成chap1.TA, 变量名name改为course*/
    var statistics chinese;          /*指定转置变量*/
    id name;                        
    run;
    

    ##1.7多数据集操作
    –复制数据集 data +set
    –拆分数据集 data+output
    –合并数据集

    data marine0;
     set marine;
    run;
    
    *拆分数据集
    data whale shark(replace=yes);
    set marine0;
    if family="whale" then output whale;
    else if family="shark" then output=shark;
    run;
    
    *数据纵向连接
    set 数据集名称1 数据集名称2...  数据集名称n;
    libname chap1 "";
    data chap1.AB;           
    set chap1.A  chap1.B;   /*合并数据集chap1.A和chap1.B*/
    run;
    
    data chap1.AC;
    set chap1.A chap1.C; /*合并数据集chap1.A和chap1.C*/
    run;
    
    *数据集横向合并
    libname chap1 "";
    proc sort data=chap1.C out=chap1.C;
    by name;
    run;
    proc sort data=chap1.D out=chap1.D;
    by name;
    run;
    /*以上对数据集chap1.C和chap1.D按照关键变量name升序排列/
    data chap1.CD;
    merge chap1.C  chap1.D;  /*横向合并数据集chap1.C和chap1.D*/
    by name;                   /*设置关键变量为id*/
    run;
    
    ##无数据集 _NULL_
    不产生数据集,仅在log页面下显示输出
    data _NULL_;
    x=exp(5);
    y=log(10);
    put x= y=;
    run;
    
    data _NULL_;
    x=0.1;
    y=1-(1-x)**50;
    y2=round(y,0.01);
    y4=round(y,0.0001);
    put y2= y4=;
    run;
    

    ###1.8循环语句
    1.DO循环
    格式:
    DO 计数变量=起始值 TO 结束值 BY 步长;
    循环体…;
    END;
    在循环体中可以用LEAVE语句跳出循环,使用COUNTRY语句结束本轮循环,调整计数变量进入下一轮循环。

    data chap2.example2_1;
    do x=5 to 30 by 5;           /*设置x的起始值为5,终止值为30,步长为5*/
    y=log(x);                  /*取y值为x的自然对数*/
    if y>3 then leave;           /*若y的值大于3结束循环*/
    output;
    format y 8.5;           /*定义y的输出形式为总长度为8位,小数部分占5位*/
    end;                  /*结束循环·*/
    
    /*·方法二:DO循环结合CONTINUE语句*/
    data chap2.example2_1;
    do x=5 to 30 by 5;           /*设置x的起始值为5,终止值为30,步长为5*/
    y=log(x);                  /*取y值为x的自然对数*/
    if y>3 then continue;         /*若y的值大于3就跳出循环*/
    output;
    format y 8.5;              /*定义y的输出形式为总长度为8位,小数部分占5位*/
    end;                     /*结束循环*/
    

    2.DO WHILE循环
    格式:
    DO WHILE 循环的语法结构;
    DO WHILE(循环继续条件);
    循环体语句;
    END;
    开始执行时,会先判断循环条件表达式的逻辑结果是否为真,若为真,则继续执行循环体语句,若为假则循环结束,循环语句每执行一次,检验循环条件一次

    data chap2.example2_2;
    y=100;     /*取y的初始值为100*/
    do x=2 to 10 by 2 while (y<3000);   /* 当y的值小于3000时,继续循环*/
    y=y*x;   /*y的值为前一次循环结束后y的值和当次循环x值的乘积*/
    output; 
    end;
    run;
    

    3.DO UNTIL 循环
    格式:
    DO UNTIL (循环退去条件);
    循环体语句…;
    END;
    语句开始执行,首循环体每执行一次都要判断是否满足循环退出条件,若循环退出条件表达式的逻辑结果为真,则退出循环,否则重复执行循环体语句

    data chap2.example2_2;
    y=100;     /*取y的初始值为100*/
    do x=2 to 10 by 2 until (y>=3000);   /* 当y的值大于等于3000时,退出循环*/
    y=y*x;   /*y的值为前一次循环结束后y的值和当次循环x值的乘积*/
    output; 
    end;
    run;
    

    上述三种循环都在DATA步完成,DO循环不设限定条件,DO WHILE和DO UNTIL循环都设置了循环条件;DO WHILE 的条件在循环体开头,DO UNTIL的条件在循环体结束

    ##1.9条件分支结构 if-else in select

    *if-else
    data conditional;
    length gender $1 quiz $2;
    input age gender midterm quiz finalexam;
    if missing(age) then agegroup=.;  *缺失值
    else if age lt 20 then agegeoup=1;
    else if age lt 40 then agegroup=2;
    else if age lt 60 then agegroup=3;
    else if age ge 60 then agegroup=4;
    datalines;
    

    *写if语句时,一般将最容易出现的语句写在前面

    if quiz="A+" or quiz="A" or quiz="B+" or quiz="B" then quizrange=1;
    else if....
    改为in
    if quiz in ("A+" "A" "B+" "B") then quizrange=1
    

    *用select结构进行逻辑判断代替一系列的if 和else if

    select(agegroup);
    when(1) limit=110;
    when(2)limit=120;
    when(3)limit=130;
    otherwise;
    end;
    

    *select-expresion 和when-expresion进行比较如果成功,执行其后语句并直接跳到select结构末尾。如果没有一次比较成功,执行otherwise后的语句,otherwise后的语句也可以为空。when语句可以包含多个比较值,例如“when(3,5) limit=130;"表示agegroup是3或5,则limit等于130.
    *select后还可以是空语句,此时,每一条when都将通过比较决定与否

    data conditional;
    length gender$1 quiz$2;
    input age gender midterm quiz finalexam;
    select;
    when (missing(age)) agegroup=.";
    when (age lt 20) agegroup=1;
    when (age lt 40) agegroup=2;
    when (age lt 60)agrgroup=3:
    when (age ge 60)agegroup=4;
    otherwise;
    end;
    datalines;
    ......
    

    ##1.10 ODS输出系统
    ODS能让用户选择以各种美观的格式报告和显示分析结果,使用DOCUMENT过程,可以生成多个ODS输出控制文档内容的去留及显示格式而不必反复运行过程和查询。
    主要支持格式:
    RTF 多文本文件格式
    OUTPUT SAS数据集格式
    LISTING
    HTML
    PRINTET
    ODS输出RTF文档格式:

    ODS LISTING CLOSE; /用户不创建列表输出/
    ODS RTF FILE="文件名.RTF"
    ...;
    ODS RTF CLOSE;
    ODS CLOSE;
    

    SAS实例

    ODS listing close;                             /*关闭SAS列表输出*/
    ODS rtf file=' E:\proc\chap2\example2_5.rtf';    /*定义输出文档名为example2_5以及存储路径*/
    proc print data=chap2.example2_4;
    run;
    ODS rtf close;                     /*结束将SAS运算结果以文本文档形式输出的过程*/
    ODS listing;                     /*打开SAS列表输出*/
    

    ODS输出RTF文档格式,将rtf改为pdf;ods输出csv格式文档,将rtf改为csv

    ##1.11export输出

    Proc EXPORT
    Data=数据集
    OUTFILR=为导出的数据命名
    DBMS=数据类型标识符
    ;
    Run;

    proc export data=sashelp.prdsale
    outfile='C:\Users\SJ\Desktop\prdsale.csv'
    dbms=csv replace;
    delimiter=',';    #指定分隔符
    putnames=no;   #是否将SAS变量名作为列名写入文件的第一行,默认为Yes
    run;
    
    展开全文
  • SAS入门(一)

    万次阅读 多人点赞 2018-03-29 19:43:32
    SAS基础 SAS语句 一个SAS语句是由SAS关键词,SAS名字,特殊字符串,并以分号(;)结尾,它要求SAS系统执行一种操作或给SAS系统提供信息。如: Data grade ; Do i=1 to n; Input X Y $10. ; SAS关键词: ...

    SAS基础

    SAS语句
    一个SAS语句是由SAS关键词,SAS名字,特殊字符串,并以分号(;)结尾,它要求SAS系统执行一种操作或给SAS系统提供信息。如:

    Data grade ;
    Do i=1 to n;
    Input X Y $10. ;
    

    SAS关键词:
    许多SAS语句都是以关键词开始并用它识别语句的类型,如DATA,INPUT,PROC和INFILE都被称为关键词。
    SAS名字:
    SAS语句中出现名字地方很多,如变量名、数据集名、格式名、过程名,及作为文件名和库标记的特殊名字。SAS名字最多可由8个英文字母构成,第一个字符不能是数字,空格和特殊字符$、@和#也不能用于SAS的名字中。另外,SAS保留了一些特殊的变量名并赋于特定的意义,这些变量都是以下划线开头和结尾,如N_表示数据步已执行过的次数。

    SAS表达式
    表达式是由一系列算符和运算对象形成的一个指令,它被执行后产生一个目标值。运算对象是变量和常数。表达式分为简单表达式(仅用一个算符)和复合表达式(使用多个算符),如:9;Age<1001;LOG(X);EXP(a);a*b/100等。SAS常数用来表示固定的值,它或者是一个数字,或者是固定的值,或者是字符串,或者是其它特殊记号。SAS有五种类型的常数:①数值常数:就是出现在SAS语句里的数字,完全像通常的数值一样书写,可以包括小数点和负号等;②字符常数:是由单引号括起来的1到200个字符组成的;③日期和时间数值常数;④十六进制数值常数;⑤十六进制字符常数。

    SAS算符
    - 比较算符:建立两个量之间的一种关系,并要求SAS确定这种关系是成立不成立。如果它成立,输出的运算结果是1;如果不成立,运算结果为0
    - 算术算符:就是数学运算中常用的五种运算符号
    - 逻辑算符:通常用来连接一系列比较式
    运算次序:下面给出复杂表达式运算次序的准则。
    ①在括号里的表达式先计算。
    ②较高优先级的运算先被执行。
    ③对于相同优先级的算符,左边的运算先做。

    sas程序
    由一系列SAS语句组成一个SAS程序。SAS程序中的语句可分为两类步骤:DATA步和PROC步。这两个步骤是所有SAS程序的模块。通常用DATA步产生SAS数据集,而用PROC步对SAS数据集内的数据进行分析处理并输出结果。PROC步要求SAS从过程中调出一个过程并执行这个过程,通常用SAS数据集作为输入。

    data phones;
    input name$ phone room height;
    cards;
    rebeccah 424 112 1.5648
    carol 450 112 5.6235
    louise 409 110 1.2568
    gina 474 110 1.3652
    mimi 410 106 1.6542
    alice 411 106 1.6985
    brenda 414 106 1.3698
    brenda 414 105 1.8975
    david 438 141 1.6547
    betty 464 141 1.5647
    holly 466 140 1.5624
    ;
    proc print data=phones; run;
    

    DATA步入门

    SAS的数据步以DATA语句开始,用于创建和处理数据集。DATA语句以关键字“data”开始,格式如下:
    data 数据集名;
    例如:data a.case;将创建在库a中名为case的SAS数据集,语句执行后你可在与库a对应的目录下看到刚刚建立的数据集文件case。
    DATA语句所指定的数据集,一般都是以“库名.数据集名”的格式出现的,也可以单独的“数据集名”出现,此时的数据集系统默认为是临时库中的数据集,退出系统后将会被删除。
    直接输入方式:就是用SAS语句输入数据来产生SAS数据集的过程,一般形式为:

         DATA 语句;
         Input 语句;
         (用于DATA步的其它语句)
          Cards;
          [数据行]
           ;
    

    从外部文件读入数据集。数据若已经包含在某个外部文件(文本文件或数据文件)中,可用此方法输入数据到数据集文件中。在以上介绍的data语句后,写入以下语句:

    infile ‘外部文件的所在位置及名称’ 选项;
    input 变量名1变量名2 …变量名n;
    infile语句用于从外部文件读入数据,必须出现在input语句之前。它的功能是指定一个包含原始数据的外部文件。

    从已建立的SAS数据集中产生新的数据集。 如果用户从已经建立的SAS数据集中抽取部份变量或数据来形成新的SAS数据子集,可在DATA步中通过SET命令来完成。

    文件操作语句
    这里写图片描述

    运行语句
    这里写图片描述

    控制语句
    对一些确定的观测跳过一些语句,或者改变被执行语句的次序,实现从程序的一部分转移控制到另一部分
    文件控制语句 语句的作用及意义
    Do 建立一组语句,它能够作为一个语句去执行
    End 标记一个DO组或Select组结束
    Select 有条件地执行几个SAS语句中的一个
    Go to 使得SAS跳到本程序步带有标号的语句,并从这里继续执行
    If then/else 有条件地执行一个SAS语句

    信息语句
    给出关于数据集或正被创建的数据集的附加信息,不是执行语句,可以出现在DATA步的任何地方,并且有同样的功能
    文件信息语句 语句的作用及意义
    Array 定义一组能够用相同方法处理的变量
    Informat 对存储变量值规定输入格式
    Format 对输出变量值规定格式
    Length 规定用来存储SAS变量的字节数
    Label 把描述性标签同变量联系起来
    Drop 指出从数据集或分析中被删除的变量
    Keep 指出在数据集或分析中被保留的变量
    Rename 改变数据集中一些变量的名字


    PROC过程步

    PROC步总是由PROC语句开始,然后给出运行的SAS过程名字。例如,运行SORT过程,则使用语句“proc sort;”来开始这个PROC步。通常PROC步只需要包括一个PROC语句给出运行的过程名字和一个RUN语句

    MEANS 计算基本统计量
    CHART 制作次数分布表 次数分布图
    UNIVARIATE PLOT 正态分布检验
    PRINT 数 据 输 出
    SORT 数 据 排 序
    Tabulate 制作表格
    ANOVA 方差分析
    GLM 协方差分析
    CORR 相关系数的计算
    REG 直 线 回 归
    PRINCOMP 主 成 分 分 析

    SAS数据集

    SAS数据集是关系型结构,分为两个部份:描述部份和数据部份
    描述部份包含了一些关于数据属性的信息即变量名称、类型及次序等信息;数据部份的结构完全等同于我们一般所理解的数据表,SAS数据值被安排在一个矩阵式的表状结构中,由字段和记录所构成,字段就是统计学中研究的变量,而记录就是每个研究对象的观测。

    SAS数据集又包含在SAS数据库的文件集中。SAS数据集是最常用的一种SAS文件类型,SAS数据库还可以包含其它类型的SAS文件
    SAS中数据库分为永久性和临时性两种。存在于永久库中的数据集是永久存在的(只要你不去删除它),临时库中的数据集则在你退出SAS后自动被删除。
    在Windows操作系统,SAS数据库以路径为基础的组织方式。为了使用SAS数据库,需要为每个SAS数据库指定一个库标记来识别。这一标记又称库逻辑名,是某个文件所在路径的别名。临时数据库的库标记为WORK,在SAS启动后自动生成,结束SAS后,库中的所有文件都被删除

    临时SAS数据集的建立
    当启动SAS后,系统自动建立一个临时数据存储区,用来临时存储运行SAS时建立或调用的SAS数据集,临时数据库的库标记为WORK,在SAS启动后自动生成,结束SAS后,库中的所有文件都被删除。临时数据库的库标记不需要标注,即SAS程序中数据集work.abc与abc的表示含义完全相同

    永久型SAS数据集的建立和保存
    SAS启动后自动生成临时数据库的库标记,因而不需要专门进行命名,但当退出系统后临时数据库中的数据集会被自动清除。为了能反复多次使用同一数据集,需建立永久型SAS数据集。实际上,建立永久型SAS数据集,就是将SAS数据集储存在数据库逻辑名对应的路径目录下。

    数据集的导入
    除了通过数据步创建数据集的方法,SAS还提供了一些其他的方式可以用来读入其他格式的数据文件。SAS可以利用【FILE】菜单上的【Import Data】命令将其他格式的数据文件导入SAS系统,创建SAS自己的数据集。可以导入的数据文件格式有:dBase数据库,EXCEL工作表,LOTUS的数据库,纯文本的数据文件等。
    导入的操作完全是对话式的,界面友好,简便实用。以下简单叙述导入的步骤

    数据集的导出
    除了导入其它格式的数据文件,SAS系统也可以导出SAS数据集为其它格式的数据文件。SAS可以利用【FILE】菜单上的【Export Data】命令将SAS数据集导出SAS系统,转换为其它格式的数据文件。同样地,可以导出的数据文件格式有:dBase数据库,EXCEL工作表,LOTUS的数据库,纯文本的数据文件等。
    数据的导出和导入完全是相反的两个过程,同样地,导出数据的菜单操作也完全是对话式的,以下简单叙述导出的步骤

    数据集的排序
    将SAS数据集中的观测(记录)按一个或多个变量的数值大小进行排序,把结果存放在新的SAS数据集里,或者代替原始数据集,以便其它SAS过程通过使用BY语句可以直接调用该数据集。在对数据集进行合并或更新之前,也必须进行排序。SORT过程能完成对数据集的排序。

    数据集的连接
    数据集的连接就是把几个数据集纵向连接起来,生成逐个尾部追加的合并数据集,或按一个或多个变量排序的新数据集,此过程在DATA步中通过SET语句来完成。
    Set语句从一个或几个已存在的SAS数据集中读取观测值。每一次set语句被执行时,SAS系统读一个观测送到程序数据向量。如果没有其它规定,set语句从输入数据集中读所有变量和所有观测。

    数据集的合并
    数据的合并是将两个或多个SAS数据集中的观测横向合并成一个新数据集的一个观测。请注意数据集连接和合并的差别
    SAS系统合并观测的方式依赖于是否有BY语句伴随着MERGE语句
    这里写图片描述

    展开全文
  • SAS入门学习

    2021-03-28 23:25:10
    sas基础 文章目录sas基础@[toc]基础第一步:DATA(数据步)第二步:PROC(过程步)第三步:RUN/QUIT(输出步)完整基本语法sas文件扩展名语句变量名变量类型注释日志数据集语法数据集结构数据的输入内置数据集导入...

    sas基础

    个人blog-1: 拾忆生活
    个人blog-2: 极简-拾忆生活
    欢迎大家来踩,同步更新


    学习来源:

    https://www.w3cschool.cn/

    https://www.zybuluo.com/longfei/note/587247

    基础

    1. data步——获取和整理数据
    2. 写proc步——分析数据
    3. 提交代码给SAS,得到output——输出分析结果

    第一步:DATA(数据步)

    数据步的作用是建立数据集,进行数据的读取和修改,后续可以提供给过程步进行统计分析

    命名数据集,定义变量,创建新变量,输入数据

    DATA data_set_name;		#Name the data set.数据集名称
    INPUT var1,var2,var3; 	#Define the variables in this data set.定义这个数据集中的变量。
    NEW_VAR;				#Create new variables.创建新变量。
    LABEL;			      	#Assign labels to variables.为变量分配标签。
    DATALINES;		      	#Enter the data.输入数据。
    RUN;
    

    例子

    DATA TEMP;
    INPUT ID $ NAME $ SALARY DEPARTMENT $;
    comm = SALARY*0.25;
    LABEL ID = 'Employee ID' comm = 'COMMISION';
    DATALINES;
    1 Rick 623.3 IT
    2 Dan 515.2 Operations
    3 Michelle 611 IT
    4 Ryan 729 HR
    5 Gary 843.25 Finance
    6 Nina 578 IT
    7 Simon 632.8 Operations
    8 Guru 722.5 Finance
    ;
    RUN;
    

    一个完整的数据步:

    DATA datasetname;/* 设定数据集名 */
        /* 定义数据集的变量 */
        /* 输入数据 */
        /* 创建新变量 */
        /* 设定缺失值 */
        /* 设定输出的数据集 */
        /* 设定变量的标签 */
        /* 其它数据任务 */
    

    第二步:PROC(过程步)

    过程对指定的数据集进行统计分析

    • 语法:
    PROC procedure_name options; #proc的名字.
    RUN;
    
    • 例子:
      • 使用MEANS过程打印数据集中数值变量的平均值
    PROC MEANS;
    RUN;
    

    一个完整的过程步:

    proc procname <options>;/* 启动过程步 对数据进行统计分析 */
        <statements>/<options>;/* 次级statement(语句),如果要添加选项,必须加/隔开 */
    

    第三步:RUN/QUIT(输出步)

    • 使用条件输出语句显示数据集中的数据
    • 语法:
    PROC PRINT DATA = data_set; /*输出数据集*/
    OPTIONS; 	/*语句类型*/
    RUN;
    
    • 例子:
      • 使用where子句从数据集中只产生少数记录
    PROC PRINT DATA=TEMP;
    WHERE SALARY > 700;
    RUN;
    
    • 当SAS执行了run;

      • 会把前面读取到的所有data步或proc步的statement语句都执行完。如果一个程序里没有run;,那么这个程序在提交后也不会被执行。
    • 当SAS执行了quit;

      • 会把某些会持续运行,占用SAS资源的的proc停掉,让SAS能够执行后面的proc。

    完整

    DATA TEMP;
    INPUT ID $ NAME $ SALARY DEPARTMENT $;
    comm = SALARY*0.25;
    LABEL ID = 'Employee ID' comm = 'COMMISION';
    DATALINES;
    1 Rick 623.3 IT
    2 Dan 515.2 Operations
    3 Michelle 611 IT
    4 Ryan 729 HR
    5 Gary 843.25 Finance
    6 Nina 578 IT
    7 Simon 632.8 Operations
    8 Guru 722.5 Finance
    ;
    RUN;
    *********proc步骤*********;
    PROC MEANS;
    RUN;
    *********print步骤*********;
    PROC PRINT DATA=TEMP;
    WHERE SALARY > 700;
    RUN;
    

    基本语法

    sas文件扩展名

    • .sas
      • SAS代码文件
    • .log
      • SAS日志文件。它包含已提交的SAS程序的错误,警告和数据集详细信息。
    • .mht / * .html
      • SAS结果文件
    • .sas7bdat
      • SAS数据文件。其中包含SAS数据集,包括变量名称,标签和计算结果。

    语句

    • 最后一行“;”结尾
    • 多行语句可以在同一行
    • 关键字不区分大小写
    • 必须使用一个运行语句run;结束

    变量名

    • 最多32个字符
    • 只包括字母、数字、下划线_,不可以数字作为第一个字符
    • 变量名不区分大小写

    变量类型

    • 数字型变量(SAS的默认变量类型)

      • 看它在逻辑上是否可以进行运算
        • 如身高、体重之类,就可以用于计算【是数字型变量】
        • ID号、电话号码之类,不可用于计算【是字符型变量】=》会自动忽略掉高位的0,如果你把ID号设置为数字类型,那么00012就会变成12
    • 字符型变量

      • 不可用于计算,会区分大小写

      • 包括Text(文本)或String(字符串)

      • 必须要手动把诸如ID号之类的数字形式的变量设置成字符型变量

    • 日期型变量

      • 是用整数表示的
      • 如10/15/09、01/05/2010、JAN052010
    /*  Ex 2.2 变量数据类型实例程序 */
    data vartypes;
        input id_num id_char $ weight_num @18 birth_date MMDDYY10.;/* 输入4个变量,分别是id_num(默认-数字型) id_char(字符型) weight_num(默认-数字型) birth_date(日期型,格式为:月/日/年) */
        datalines;
        0001 0001 60 03/07/2016
        0002 0002 50 04/02/2016
        0003 0003 30 12/31/2016
        0004 0004 45 04/12/2016
        0005 0005 49 04/07/2016
        ;
    proc print data = vartypes;
    run;
    

    注释

    两种形式

    • *注释内容;
    # 单行注释
    * 注释内容;    
    
    # 多行注释
    * 注释内容
    * 注释内容;
    
    • / * 注释内容 * /
    # 单行注释
    /* 注释内容 */ 
    
    # 多行注释
    /* 注释内容
    * 注释内容 */
    

    日志

    红色的字表示错误(error),说明代码出错了

    绿色的字表示警告(warning),说明当前提示的这句代码可能有问题【大多数时候不用管的,嗯】

    数据集

    可读取CSV,Excel,Access,SPSS和原始数据

    语法

    DATA 数据集名
    
    • 临时数据集
      • DATA语句之后的一个字表示一个临时数据集的名字
      • 如果省略SAS数据集名称,则SAS会创建一个临时数据集
      • 临时数据集存在library里,名字叫work
      • 在会话结束时删除,一旦关掉SAS,就会被销毁
    • 永久数据集
      • 前半部分是SAS的 library(逻辑库)名,后半部分是数据集名【用一个.连接的复合名字】
      • 以文件的形式被储存到硬盘上,位置是library(逻辑库)指定的路径
      • 在会话结束后仍然存在
    # Temporary data sets.临时数据集【保存在work逻辑库中】
    DATA TempData;
    DATA abc;
    DATA newdat;
    
    # Permanent data sets.永久数据集
    DATA LIBRARY1.DATA1
    DATA MYLIB.newdat;
    
    /* 临时数据集实例 
        每一次重新打开SAS,要运行代码中的proc步,就必须先提交data步。
    */
    data tempdata;/* 输入数据集 */
        input t @@;
        datalines;
        1 2 3 4
        ;
    proc print data=tempdata;/* 打印数据集 */
    run;
    
    /*  持久数据集实例 
        只有第一次需要提交全部的代码,之后数据集就会被以文件形式储存在MyData库中。之后要使用,只需要执行第一句分配逻辑库名,就可以直接提交proc步,而无需再次提交data步输入数据。
    */
    libname MyData "D:\MyData";/* 分配逻辑库名 */
    data MyData.tempdata;/* 输入数据集 */
        input t @@;
        datalines;
        1 2 3 4
        ;
    proc print data=MyData.tempdata;/* 打印数据集 */
    run;
    

    数据集结构

    其实是一张表。每一列表示一个变量,每一行表示一个观测。

    第一列是观测的序号

    其余列是变量名

    数据的输入

    明天继续学习!infile语句

    内置数据集

    • 视图=》sas资源管理器=》当前逻辑库=》SASHELP
      • 所有内置数据集的名称列表

    导入外部数据集

    • 文件-》导入数据
      • 第一个导入标准文件资源
      • 第二个自定义
    展开全文
  • SAS入门基础(常用函数)

    千次阅读 2018-12-10 10:07:38
    DHMS(date,hour,minute,second):有日期、小时、分钟、秒得到SAS日期和时间值。 MDY(month,day,year):生成月日年的SAS日期值。 MONTH(date):有SAS日期值date得到月。 QTR(date):有SAS日期值date得到季度值。 ...

    ⒈算术函数(Arithmetic Functions)

    	ABS(x) :求x的绝对值。 例如ABS(-56.3)=56.3 。
    	MAX(x1,x2,…,xn) :求所有自变量中的最大一个。 例如MAX(52,15,67,89)=89 。
    	MIN(x1,x2,…,xn) :求所有自变量中的最小一个。例如MIN(52,15,67,89)=15 。
    	MOD(x,y) :求x除以y的余数。 例如MOD(24,3)=0 。
    	SIGN(x) :计算x的符号,结果为1、-1、0。例如SIGN(-5)=-1,SIGN(20)=1,
    	          SIGN(0)=0。
    	SQRT(x) :求x的平方根。 例如SQRT(225)=15 。
    

    ⒉数学函数(Mathematical Functions)

    	ERF(X):误差函数 。
    	EXP(X):指数函数 。
    	GAMMA(X):计算 的值。
    	LOG(X):计算x的自然对数。
    	LOG10(X):计算x的以10为底的对数。
    	LGAMMA(X):计算函数的自然对数。
    

    ⒊截断函数(Truncation Functions)

    	CEIL(X):计算x的最小整数,当x为整数时就是x本身,否则为x右侧最近的整数。
    	例如CEIL(-134.45)=-134,CEIL(34.45)=35,CEIL(78)=78。
    	FLOOR(X):计算小于或等于x的最大整数,例如FLOOR(-134.45)=-135,FLOOR(34.45)=34。
    	INT(X):求x舍掉小数部分后的整数部分。例如INT(-134.45)=-134,INT(34.45)=34。
    	ROUND(x,unit):计算x按照unit指定的精度四舍五入后的结果,例如ROUND(134.4567,
    				0.01)
    	结果为134.46,ROUND(3678.2398,10)结果为3680。
    

    ⒋三角和曲线函数(Trigonometric and Hyperbolic Functions)

    	ARCOS(y):计算反余弦函数。
    	ARSIN(y):计算反正弦函数。
    	ATAN(y):计算反正切函数。
    	COS(X):计算x的余弦函数。
    	SIN(X):计算x的正弦函数
    

    ⒌字符函数(Character Functions)

    	COMPBL(S):将字符串S中的多余空格去掉。
    	COMPRESS(S,S1):将字符串S中包含的所有字符串S1去掉。
    	INDEX(S,S1):查找字符串S1在S中的位置。如果S中不包含S1则返回0。
    	LOWCASE(S):把字符串S中所有大写字母转换为小写字母。
    	UPCASE(S):把字符串S中所有小写字母转换为大写字母。
    	RANK(S):求字符串S的ASCII码值。
    	REPEAT(S,N):将字符串S重复N次。
    	SUBSTR(S,N,LONG):字符串S中的第N个字符开始抽取long个字符长的子串。
    	TRANWRD(S,S1,S2):将字符串S中的所有字符串S1替换成字符串S2。
    

    ⒍日期和时间函数(Date and Time Functions)

    	常用日期和时间函数有:
    	DATEIF(sdate,edate,basis):计算两个日期之间相距的天数,basis指定日期格式。
    	DATE:计算当前SAS系统的日期。
    	DAY(date):有SAS日期值date得到是几日。
    	DHMS(date,hour,minute,second):有日期、小时、分钟、秒得到SAS日期和时间值。
    	MDY(month,day,year):生成月日年的SAS日期值。
    	MONTH(date):有SAS日期值date得到月。
    	QTR(date):有SAS日期值date得到季度值。
    	WEEKDAY(day):有SAS日期值date得到星期几。
    	YEAR(DATE):有SAS日期值date得到年。
    	其它日期和时间函数参见SAS系统的帮助信息。
    

    ⒎概率与密度函数(Probability and Density Functions)

    作为一个统计计算语言,SAS提供了多种概率分布函数。分布密度、概率、累积分布函数等可以
    通过集中统一的格式调用,格式为:
    	CDF(‘dist’,quantile,parm-1,…,parm-k):计算累计分布函数。Dist为分布名称,
    	quntile为分为数,随后是相关参数。
    	PDF|PMF(‘dist’,quantile,parm-1,…,parm-k):计算概率密度函数。Dist
    	为分布名称,quntile为分为数,随后是相关参数。
    	LOGPDF|LOGPMF(‘dist’,quantile,parm-1,…,parm-k):计算概率密度函数的对数值。
    	Dist为分布名称,quntile为分为数,随后是相关参数。
    	LOGSDF(‘dist’,quantile,parm-1,…,parm-k):计算生存函数的对数值。
    	Dist为分布名称,quntile为分为数,随后是相关参数。
    	PROBCHI(x,df<,nc>):计算卡方分布的概率值。可选参数nc为非中心参数。
    	PROBF(x,ndf,ddf<,nc>):计算F分布的概率值。可选参数nc为非中心参数。
    	PROBGAM(x,a):计算伽马分布的概率值。
    	PROBNORM(x):计算标准正态分布的概率值。
    

    ⒏分位数函数(Quantile Functions)

    分位数函数是概率分布函数的反函数。其自变量在0-1之间取值。分位数函数计算的是分布的
    左侧分位数。
    BETAINV(p,a,b):计算参数为(a, b)的 分布的p分位数。
    CINV(p, df<,nc>):计算自由度为df的卡方分布p分位数。可选参数nc为非中心参数。
    FINV(p, ndf, ddf<,nc>):计算F (ndf , ddf)分布的p分位数。可选参数nc为非中心参数。
    GAMINV(p, a):计算参数为a的伽马分布的p分位数。
    PROBIT(p):计算标准正态分布的p分位数。
    TINV(p, df>,nc<):计算自由度为df的t分布的p分位数。可选参数nc为非中心参数。
    

    ⒐随机数函数(Random Number Functions)

    	SAS提供了常见分布的伪随机数生成函数。
    		NORMAL(seed):产生服从正态分布的随机数。seed为0,或5位、6位、7位的奇数。
    		RANNOR (seed):产生服从正态分布的随机数。seed为任意数值常数。
    		RANBIN(seed,n, p):产生参数为(n, p)的二项分布随机数,seed为任意数值。
    		均匀分布随机数。
    	系统提供两个均匀分布随机数函数:
    		UNIFORM(seed):产生服从均匀分布的随机数。参数seed必须是常数,为0,或5位、
    		6位、7位的奇数。
    		RANUNI (seed):产生服从均匀分布的随机数。参数seed为小于2**31-1的任意常数。
    	在同一个数据步中对同一个随机数函数的多次调用将得到不同的结果,但不同数据步中从
    	同一种子出发将得到相同的随机数序列。随机数种子如果取0或者负数,则种子采用系统
    	日期时间。
    	RANEXP(seed):产生服从指数分布的随机数。seed为任意数值,产生参数为1的指数分布
    	的随机数。
    	RANPOI(seed,lambda):产生参数为lambda>0的泊松分布随机数,seed为任意数值。
    	RANTBL(seed,P1,…,Pn)生成取1,2,…,n的概率分别为P1,…,Pn的离散分布随
    	机数。
    

    ⒑样本统计函数(Sample Statistics Funtions)

    	样本统计函数把输人的自变量作为一组样本,计算样本统计量。其调用格式为“函数名(自
    	变量1,自变量2,…,自变量n)”或者“函数名(OF变量名列表)”。比如SUM是求和函数,
    	如果要求x1、x2, x3的和,则可以用SUM(xl,x2,x3),也可以用SUM(of x1-x3)。
    	各样本统计函数为:
    	CSS:离差平方和
    	CV:变异系数
    	KURTOSIS:峰度
    	MEAN:均值
    	MAX:最大值
    	MIN:最小值
    	N:非缺失数据的个数
    	NMISS:缺失数值的个数
    	RANGE:极差=MAX - MIN
    	SKEWNESS:偏度
    	STD DEV:标准差
    	STDERR:均值估计的标准误,用STD/SQRT(N)计算
    	SUM:求和
    	USS:平方和
    	VAR:方差
    
    展开全文
  • SAS入门

    2019-01-10 23:43:18
    SAS入门SAS资源视图SAS语句SAS逻辑库临时库永久库SAS数据集SAS输出格式 SAS资源 [SAS资源下载](https://pan.baidu.com/s/10bsCdUypDGqLdYn1V75BqQ) 视图 SAS语句 SAS有着DATA步和PROC步,数据步是由DATA开始,过程...
  • SAS新手入门

    2018-06-30 20:52:32
    对新手学习SAS 进行培训,主要介绍SAS 构成 ,编程基础 ,数据来源
  • sas入门教程

    2013-04-15 15:07:36
    sas入门,详细的介绍了sas分析软件的使用,为科研工作提供了应有的基础。
  • SAS入门教程1---SAS系统简介

    万次阅读 2012-12-05 03:09:37
    第一章 SAS系统简介   一. 概述 SAS (Statistical Analysis System) 是一个模块化、集成化的大型应用软件系统。它由数十个专用模块构成,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、...
  • SAS 入门(二)实战篇

    2020-08-07 18:07:18
    SAS入门(二)数据集导入 本篇基于上一篇的理论学习,即SAS入门(一)进行实战,旨在记录练习中出现的bug及解决方法。 数据集导入 1、通过import导入.xls数据集时报错: ERROR: Database error. Examine fields and...
  • SAS入门 (二)--宏

    万次阅读 多人点赞 2018-03-30 10:58:16
    SAS宏功能 将一个变量,一段程序或者一个文本命名,供以后调用,是用于扩充和制做用户化SAS系统的工具;利用宏功能用户可以减少在完成一些共同任务时必须输入的文本量。当用户在某个SAS程序中使用宏功能时,这个宏...
  • SAS入门(一)理论篇

    2020-08-07 10:39:25
    SAS入门(一)SAS系统结构组成SAS模块功能SAS系统文件管理SAS语言构成SAS程序构成DATA步PROC步SAS函数数据集SAS语句 SAS系统结构组成 SAS是由众多产品组成的模块化的大型集成系统,以下简要介绍常用的SAS模块功能。...
  • 【SAS系列】SAS入门书籍推荐

    千次阅读 2014-04-09 21:59:07
    sas入门书籍推荐z: */ 学习sas一年多,整理下个人觉得几本不错的sas入门书籍希望对大家有点帮助! 1.薛富波主编的《SAS8.2统计应用教程》这是我看的第一本与sas相关的书籍,个人觉得还是不错的,全书的...
  • SAS入门教程2---建立SAS数据集

    千次阅读 2018-12-27 10:49:57
    我们知道SAS是以数据为中心的一个应用软件系统,一般来说,一个SAS的程序的运行,离不开SAS的数据集,数据必须以SAS数据集的格式存放才能被许多SAS程序处理。本章我们介绍建立SAS数据集的两种基本方法。 &nbsp; ...
  • SAS入门(二)---DATA步

    千次阅读 2019-01-12 22:44:20
    虽然在执行时生成的数据文件名字不是自己定义的,我们也依然可以SAS系统宏变量&syslast来跟踪。 proc datasets nolist; delete %scan(&syslast,2); quit; NOTE: 正在删除 WORK.DATA2 (memtype=DATA)。 NOTE: ...
  • SAS入门基础(select结构和循环结构)

    千次阅读 2018-12-10 09:43:05
    这种结构与BASIC中计数循环很类似,功能也相当,只是在SAS中是以关键字DO开头(不是FOR), 另外步长用BY引导(不是STEP),而结构以END结束(而不是NEXT)。 其功能与流程: 程序先把计数变量赋值为起始值,如果此值...
  • Rutgers-New Brunswick的SAS-STATS390 SAS软件的五周入门课程。 到目前为止,简单的柠檬容易榨取:v
  • sas变量: 字符型变量。定义后家“$”以标识 数值型变量。 数值型常量 字符型常量 日期型常量 有单引号引起的日期,并在后家D,T,DT 分别代表日期,时间,日期时间。如:’12:37’T sas运算符: 算术运算符...
  • SAS入门第一课

    2021-08-18 10:18:23
    现在开始整理SAS学习笔记 首先学习SAS的工作界面,熟悉各个界面的作用。工作区主要有三个窗口,编辑器,输出窗口,日志窗口。 编辑器主要是写代码。输出窗口是看结果,日志窗口可以报错。 再有SAS中的菜单有文件,...
  • SAS基础教程 中文版

    2018-07-08 10:27:17
    技术官方讲义,适合sas初学者,也可供平时查阅使用。。。
  • SAS入门之(四)改变数据类型

    千次阅读 2018-05-29 10:56:10
    将字符串改为数值 用input生成新的变量 data a; set a; year_new=input(year,12.); month_new=input(month,12.); rename year_new=year; rename month_new=month; drop year month;......
  • 2020年 8月更新:我觉得,我应该推荐下我本人出版的《SAS编程演义》《SAS编程演义》(谷鸿秋)【摘要 书评 试读】- 京东图书​item.jd....关于SAS学习,目的不同,学习的策略也不同。我姑且将学习目的分...
  • SAS入门到精通

    2017-05-22 13:35:47
    SAS数据分析以及软件使用,对于数据分析师而言很有用处
  • 统计软件SAS入门教程:SAS程序初步

    千次阅读 2012-12-05 07:27:08
    很好的一篇文章,特适合入门者。 从本质上讲,SAS是一种完善的第四代计算机语言。因此要真正掌握它,我们仍然要抛开其华丽的外表,从学习它的核心――SAS程序开始。 现在,让我们将SAS看成一个计算能力极强的...
  • 统计SAS入门

    2016-01-16 14:35:50
    SAS 入门
  • 本节所用数据集: 链接:...提取码:4les 建立目录 启动 insight 模块,打开数据集 ...双击“PEIXUN.FLY”窗口即可弹出 ...3.4 Edit/windows/tool 菜单:使数据探索色彩缤纷(注意选项设置) ...3.6 使
  • SAS入门到精通.pdf

    2014-09-28 14:39:23
    SAS入门到精通.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,004
精华内容 1,601
关键字:

sas入门