全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1583 2
2015-04-15
最近在the little sas book第六章看到只有一个观测值且没有相同合并变量的数据集合并到原始的有多个观测数据集的程序如下:
data new_data_set;
if _n_=1 then set summary_data_set;
set original_data_set;

假设原始数据original_data_set为:
1  ...
2  ...
2  ...
3  ...
3  ...
合并的数据summary_data_set为:total
则结果new_data_set为:
1  ...  total
2  ...  total
2  ...  total
3  ...  total
3  ...  total
虽然已经知道运行结果,但没有想明白程序的运行原理,书上的解释说因为set语句是自动保留的,summary_data_set只在第一次循环时读入了一次,有其他变量时自动保留了,类似于retain语句,新手实在没看明白,求各位大神指点,谢谢!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-15 16:52:23
你可以结合书上的解释,看一下下面这个例子:
data detail(keep=x) total(keep=total);
    do x=3,4,8,19;
           total+x;
           output detail;
        end;
        output total;
run;

data pct;
    put "Loop " _n_ ":";
    put "Before Set: " _all_;
    if _n_=1 then set total;
        set detail;
        pct=x/total*100;
    put "After Set : " _all_;
        put "----------------------------------";
run;

   
二维码

扫码加我 拉你入群

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

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

2015-4-15 23:52:22
pobel 发表于 2015-4-15 16:52
你可以结合书上的解释,看一下下面这个例子:
data detail(keep=x) total(keep=total);
    do x=3,4,8,1 ...
多谢指点!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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