全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5346 5
2009-04-28
我用循环查询了work.lag数据集中z1,z2,...z10,共十个变量,并分别求和作为sum1,sum2,...sum10;
但是不知道如何存储这10个求和结果,即把它们放到一个数据集中。多谢高手指点!
%macro cov;

proc sql;
%do i=0 %to 10;
select sum(z&i) as sum&i from work.lag;
%end;
quit;

%mend;
%cov;
<script type="text/javascript"></script><script src="https://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><script></script>
二维码

扫码加我 拉你入群

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

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

全部回复
2009-4-28 23:48:00
就你寫的程式修該如下即可
%macro cov;
%do i=0 %to 10;
proc sql ;
create table sum as select sum(z&i) as sum&i
 from work.lag;quit;

%if &i.=1 %then %do;
data out;set sum;run;
%end;
%else %do;
data out;  
merge out sum;  run;
%end;

%end;
%mend;

還有更簡便的方法,不一定要用SQL用proc means會更快
proc means data=lag noprint; 
 var z1-z10;  
output out=out sum= /autoname;
run; 

[此贴子已经被作者于2009-4-28 23:53:17编辑过]

二维码

扫码加我 拉你入群

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

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

2009-4-29 17:33:00

%macro cov;

proc sql;
%do i=0 %to 10;
select sum(z&i) as sum&i from work.lag;
%end;
quit;

data a;

set sum&i a;

%mend;
%cov;

二维码

扫码加我 拉你入群

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

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

2009-4-29 18:09:00

%macro cov;

proc sql;

create table sum as

  select
%do i=0 %to 10;
    %if &i ne 10 %then sum(z&i) as sum&i ,

    %else sum(z&i) as sum&i 

%end;

from work.lag;
quit;

%mend;

[此贴子已经被作者于2009-4-29 18:09:48编辑过]

二维码

扫码加我 拉你入群

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

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

2009-5-11 10:04:00
飘过,学习中
二维码

扫码加我 拉你入群

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

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

2013-1-17 13:16:39
pobel 发表于 2009-4-29 18:09
%macro cov;proc sql;create table sum as   select %do i=0 %to 10;    %if &i ne  ...
学习啦
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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