SAS学习(11)——常用代码汇总

一、数据导入

filename export "C:\User\Data\new_c_register.csv" encoding='utf-8';
proc import out=cancer.new_c_register
             datafile=export
             dbms=csv replace;
run;

二、复制数据集

*将ourlib逻辑库中的数据集复制到临时Work逻辑库中;
proc copy noclone in=ourlib out=work;
select Register_new;
run;

也可以直接复制想要的数据集,粘贴到Work逻辑库中。

三、生成变量Format

proc format;
    value $VAR1
        test_1='pre_test'
        test_2='ongoing'
        test_3='after_test';/*Character*/
    value Smoke_3cat
        1='Never'
        2='Seldom'
        3='Daily';
run;

四、加法运算

data a;
    set a;
        sum_1=var1+var2+var3;
        sum_2=sum (of var1-var3);
run;

需要注意:二者均可以,但如果数据出现缺失,sum_1的结果会是缺失,sum_2会是所有非缺失值之和。

五、数据集合并

data merge_new;
    merge Student(in=x) visit_record(keep=id visit_site;/*如果需要这里可以保留指定的变量*/
    by id;
    if x then output;
run;

六、计算某个变量出现的次数

proc sort data=a1;
    by visit_case visit_site id;
run;
data a2;
    set a1;
    by visit_case visit_site id;
    retain order;
    if first.visit_site then do;
        order=1;
    end;
    else do
        order=order+1;
    end;
run;

七、proc report

proc report data=a1 out=a1_output nowd;
    label visit_site='访问地点';
    format sex_2cat sex_2cat.;
    column id visit_site sex_2cat order, (record_id percentage);/*变量顺序即为展示的顺序*/
    define visit_case/group;/*visit_case这个变量用分组形式展示*/
    define sex_2cat/display;
    define order/across;/*这里注意看column后有一个比较特殊的写法,这个出来的结果是每一个order计数下的id和百分比*/
run;

八、截取字符

data a1;
    set a1;
    z=substr(Year_diagnose,1,4);/*意思是从第一个字符开始,截取前四个字符,例如‘2019-01-01(字符形式的值)’,截取后z就是2019*/
run;

九、导出excel(批量导出结果)

ods excel file='C:\User\Output\结果输出.xlsx';

ods excel option(sheet_interval='PROC' sheet_name='数据总览');
proc report data=a1 nowd;
...
quit;

ods excel option(sheet_interval='PROC' sheet_name='按省份分布');
proc print data=a1 noobs label;
...
quit;

ods excel close;

这样导出的数据是一个大的excel,包含不同sheet,每一个sheet就是proc语句运行的结果。

十、导出数据(proc export)

proc export data=a1
            outfile='C:\User\Output\ALL.xlsx'
            dbms=xlsx
            replace
            label;/*使用各变量label作表头*/
run;
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊小熊没有四点水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值