全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4102 2
2015-10-10
悬赏 10 个论坛币 已解决
完全晕了,到底是operator处理missing,结果是missing,还是sum啊? code 如下:
data work.passengers;
        if OrigPassengers=. then
                OrigPassengers=100;
        TransPassengers=100;
        OrigPassengers=.;
        NonPaying=10;
        TotalPassengers=OrigPassengers + TransPassengers;
run;
title work.passengers='+';
proc print ;
/*
Obs        OrigPassengers        TransPassengers        NonPaying        TotalPassengers
1         .                                100                                10                        .
*/
data work.passengers;
        if OrigPassengers=. then
                OrigPassengers=100;
        TransPassengers=100;
        OrigPassengers=.;
        NonPaying=10;
        TotalPassengers=sum(OrigPassengers,TransPassengers);
run;
title work.passengers='sum';
proc print;

/*
Obs        OrigPassengers        TransPassengers        NonPaying        TotalPassengers
1        .                                100                                10                        100
*/
Q70:
data orig;
        input year adddd;
        datalines;
1901 2
1905 1
1910 6
1925 .
1941 1
;

data temp1;
        set orig;
        totquantity + adddd;
run;
title temp1='+';
proc print;run;

/*
Obs        year adddd        totquantity
1        1901        2        2
2        1905        1        3
3        1910        6        9
4        1925        .        9
5        1941        1        10
*/

data temp2;
        set orig;
        retain totquantity 0;
        totquantity =sum (totquantity,adddd);
run;
title temp2="sum";
proc print;run;

/*
Obs        year adddd        totquantity
1        1901        2        2
2        1905        1        3
3        1910        6        9
4        1925        .        9
5        1941        1        10
*/








最佳答案

山久丰 查看完整内容

在sas中,对缺失值与其他数字进行+或-运算时,结果为缺失值。而sum函数结果为非缺失值之和,同时,累加语句variable+expression,在编译阶段,PDV会自动设置该累加变量的值为0,它的值从当前执行后一直保留在PDV,直到下次执行为止。因此累加语句等价于sum函数,如果在累加过程中遇到缺失值的话会忽略掉。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-10 05:27:43
在sas中,对缺失值与其他数字进行+或-运算时,结果为缺失值。而sum函数结果为非缺失值之和,同时,累加语句variable+expression,在编译阶段,PDV会自动设置该累加变量的值为0,它的值从当前执行后一直保留在PDV,直到下次执行为止。因此累加语句等价于sum函数,如果在累加过程中遇到缺失值的话会忽略掉。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-12 03:20:28
多谢楼上的,明白了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群