全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1500 4
2009-07-19
      
            
     num



  theta



scale



shape



n
713.2764746.7014573.334546136
713.2690658.1256143.228867131
813.2972218.833981.94523229
813.0822519.4364162.03743734
813.0365311.520782.13542437
1063.1389939.4895672.29798930
1063.15724712.184112.3983132

比如,我在excel 中有如上一个表单数据,每次输进去一行值,就会输出一个表,也就是说我这上面有7行数,应该产生7个表的数据(你可以用第二个程序试试)。第一个代码不能成功,能帮我解答吗?谢谢!
1、
dm 'log;clear;output;clear';
proc import datafile="c:\example.xls"
out=one;
data one;set one;
x=n;
run;
data one;
do k=1 to 7;
do m=1 to x;
  y=theta+scale*(-log(ranuni(123321)))**(1/shape);
  output;
  end;
  end;
run;

2、

data one;
theta=3.2765;
scale=6.7015;
shape=3.3345;
do n=1 to 136;
  y=theta+scale*(-log(ranuni(123321)))**(1/shape);
  output;
  end;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2009-7-19 16:55:56
第二个程序是针对1行数,产生一个表
二维码

扫码加我 拉你入群

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

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

2009-7-19 20:25:58
data one;
input num theta scale shape n@;
cards;
71 3.276474 6.701457 3.334546 136  
71 3.269065 8.125614 3.228867 131  
81 3.297221 8.83398 1.945232 29  
81 3.082251 9.436416 2.037437 34  
81 3.03653 11.52078 2.135424 37  
106 3.138993 9.489567 2.297989 30  
106 3.157247 12.18411 2.39831 32  
run;
proc sort data=one;by n notsorted;run;
data b;set one;by n notsorted;
if first.n then n1+1;
run;
proc sql noprint;
select max(n1) into :n from b;
quit;
%macro test;
%do i=1 %to &n;
data one&i;
set b;
if n1=&i;
do i=1 to n;
  y=theta+scale*(-log(ranuni(123321)))**(1/shape);
  output;
  end;
run;
%end;
%mend;
%test
二维码

扫码加我 拉你入群

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

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

2009-7-19 20:41:16
真厉害!!!服了!
二维码

扫码加我 拉你入群

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

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

2009-7-19 21:31:13
谢谢朋友们,帮我解决了一个大难题。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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