2024-05-28 初级SAS学习笔记10(dataset)

                DATA  _NULL_默认不输出数据集,也可以在DATA 后面设置多个数据集名称,同时生成多个数据集,与IF ELSE 或者DO END、OUTPUT语句连用或者OUTPUT 语句单独使用,实现将不同的观测值输出不同的数据集内;如:

        IF family="Ursidae" THEN OUTPUT bears;

举例说明:

        data morning afternoon;

                infile "c:\MyRawData\Zoo.dat";

                input Animal $ 1-9 Class $ 11-18 Enclosure $ FeedTime $ ;

                if FeedTime="am" then  output morning;

                        else if FeedTime=“pm” then output afternoon;

                        else if feedtime-"both" then output;(表示两个数据集都输出);

        run;

        proc print data=morning;

                title "Animals with Morning Feedings";

        run;

        proc print data=afternoon;

                title "Animals with Afternoon Feedings";

        run;

结果如下:

              SAS默认在DATA 步的最后隐藏着output语句,data步只有遇见output语句才会输出观测,如果用户不自定义output语句,则data 步默认在最后输出观测;如下所示:

data generate ;

        do x=1 to 6;

                y=x**2;

                output;

        end;

run;

如果不在do循环内设置output,则只会在do循环后遇见隐藏的output语句最后一个观测,不会把每次循环的6个观测值输出到数据集。

proc print data=generate;

        title "Generated Data";

run;

output 语句在data步的使用如下:

已知数据格式:分别是日期 地址和票数三个变量,需要将每行变成三行观测

使用的语句如下;

data theaters;

        infile "c:\myrawdata\movie.dat";

        input Month $  Location $ Tickets @;(@表示遇见下一个input 不换行)

        output;

        input Location $ Tickets $ @;(由于Month 没有被覆盖,所有Month里面的值会保留)

        output;

        input Location $ Tickets $ ;

        output;

run;

proc print data=theaters;

        title "Ticket Sales";

run;

结果如下:

        SAS的选项多有系统选项(system options)、语句选项(Statement options)、数据集选项(data set options),系统选项在SAS启动时自动设置,对全局产生影响,也可以使用options  语句修改。

          数据集选项(dataset options) 往往是影响SAS如何读取或者写入数据集,data-set options 选项可以在DATA ,SET ,MERGE ,UPDATE 或者PROC 步 data = 这些语句中使用,使用方法是在数据集名称后面用括号括起来,如: data example (data-set options),常用的数据集选项有:

        KEEP=variable-list            (告知SAS哪些变量可以保留)

        DROP=variable-list             (告知SAS哪些变量可以删除)

        RENAME=(oldvar=newvar) (告知SAS对变量重命名)

        FIRSTOBS=N                   (告知SAS从第几行开始读入观测)

        OBS=N                             (告知SAS到第几行开始结束观测)

        LABEL="data-set-label"    (给数据集加标签)

        IN=new-var-name             (临时新增新变量名,记录该数据集是否含有某类观测)

        WHERE=condition            (根据具体条件选择某类观测值)

  

以下是使用示例:

        data  selectedvars;

                set animals(keep= class species status);

        proc print data=animals(drop=habit);

        data  animals(rename=(class=type habitat=home));

                set animals;

        proc print data=animals(rename=(class=type habitat=home));

        data animals ;

                set animals(firstobs=101 obs=202);

        proc print data=animals(firstobs=101 obs=202);

(当数据量特别大时,可以使用firstobs= 和obs=选项来选取部分数据来测试SAS程序的准确度)

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值