楼主: chinaathena
2016 7

[原创博文] 请问用宏做了50步均值过程,如何把所有的均值保存到一个数据集 [推广有奖]

  • 0关注
  • 0粉丝

本科生

59%

还不是VIP/贵宾

-

威望
0
论坛币
241 个
通用积分
0
学术水平
1 点
热心指数
3 点
信用等级
1 点
经验
2816 点
帖子
72
精华
0
在线时间
108 小时
注册时间
2010-5-2
最后登录
2021-11-15

楼主
chinaathena 发表于 2010-5-2 15:09:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
程序如下:
data a;                                                                                                                                                                                                                                                         
input x@@;                                                                                                                                                                                                                                                      
cards;                                                                                                                                                                                                                                                         
10 11 9 8 10 9 8 11 7 13 12 12 10 7 9                                                                                                                                                                                                                           
;                                                                                                                                                                                                                                                               
run;                                                                                                                                                                                                                                                            
%macro loop_a;                                                                                                                                                                                                                                                
%do i=1 %to 50;                                                                                                                                                                                                                                                
proc surveyselect data = a                                                                                                                                                                                                                                      
     method=srs n=5  out=k&i;                                                                                                                                                                                                                                   
proc means data=k&i; output out=u&i mean=w;                                                                                                                                                                                                                     
%end;                                                                                                                                                                                                                                                           
%mend;                                                                                                                                                                                                                                                         
%loop_a;
我是用了 output out=u&i  mean=w; 生成了好多数据集再合并的,请达人指点。

问题应该是如果不用均值过程,如何得到并保存抽样过程的均值到一个数据集........l囧rz
二维码

扫码加我 拉你入群

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

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

关键词:数据集 surveyselect Surveys output Survey 如何 程序

回帖推荐

soporaeternus 发表于7楼  查看完整内容

不用过程步...... 抽n个m次,计算均值,如果需要具体抽取样本,稍加修改也可以输出

本帖被以下文库推荐

沙发
crackman 发表于 2010-5-2 16:21:52
data a;                                                                                                                                                                                                                                                         
input x@@;                                                                                                                                                                                                                                                      
cards;                                                                                                                                                                                                                                                         
10 11 9 8 10 9 8 11 7 13 12 12 10 7 9                                                                                                                                                                                                                           
;                                                                                                                                                                                                                                                               
run;                                                                                                                                                                                                                                                            
%macro loop_a;                                                                                                                                                                                                                                                
%do i=1 %to 50;                                                                                                                                                                                                                                                
proc surveyselect data = a                                                                                                                                                                                                                                      
     method=srs n=5  out=k&i noprint;
run;
data k&i;
set k&i;
n=&i;                                                                                                                                                                                                                  
%end;                                                                                                                                                                                                                                                           
%mend;                                                                                                                                                                                                                                                         
%loop_a;
data k;
set k1-k50;
run;
proc means data=k;
class n;
var x;
output out=u mean=w;  
run;

藤椅
crackman 发表于 2010-5-2 16:23:46
优化了一下
1。不用输出每一个surveyselect过程
2。把所有数据集合并,用N作为分组变量
3。只对一个数据集进行均值分析,结果保存在一个数据集里面

板凳
sushe1527 发表于 2010-5-2 16:35:57
问题是如果不用均值过程,如何得到并保存抽样过程的均值到一个数据集
-------------------------------------------------------------------------------------------------
不用均值过程,还需要求出均值,我只能说你的认识已经提高到一个高度了

报纸
crackman 发表于 2010-5-2 16:42:23
4# sushe1527
呵呵
楼主的问题有点意思

地板
chinaathena 发表于 2010-5-2 17:19:24
尴尬,只能说高人就是高人,连表意不清的问题都能理解清楚
我杯具了……

7
soporaeternus 发表于 2010-5-2 23:13:12
  1. data a;                                                                                                                                                                                                                                                         
  2. input x@@;                                                                                                                                                                                                                                                      
  3. cards;                                                                                                                                                                                                                                                         
  4. 10 11 9 8 10 9 8 11 7 13 12 12 10 7 9                                                                                                                                                                                                                           
  5. ;                                                                                                                                                                                                                                                               
  6. run;            

  7. %MACRO TEST(n,m);
  8.         data _null_;
  9.                 set a nobs=n;
  10.                 call symput("NOBS",n);
  11.         run;
  12.         %put &NOBS;
  13.         data b;
  14.                 retain s1-s&m &n n &nobs t1-t&m 0;
  15.                 set a end=eof;
  16.                 %do i=1 %to &m %by 1;
  17.                         if ranuni(0)<=s&i/n then do;
  18.                                 t&i+x;
  19.                                 s&i+(-1);       
  20.                         end;
  21.                 %end;
  22.                 n+(-1);
  23.                 if eof then do;
  24.                         %do i=1 %to &m %by 1;
  25.                                 NO=&i;
  26.                                 AVG=t&i/&n;
  27.                                 output;
  28.                         %end;

  29.                 end;
  30.                 keep NO AVG;
  31.         run;
  32. %MEND TEST;
  33. %TEST(5,50);
复制代码
不用过程步......
抽n个m次,计算均值,如果需要具体抽取样本,稍加修改也可以输出
已有 1 人评分经验 学术水平 热心指数 收起 理由
crackman + 100 + 1 + 1 精彩帖子

总评分: 经验 + 100  学术水平 + 1  热心指数 + 1   查看全部评分

Let them be hard, but never unjust

8
crackman 发表于 2010-5-3 00:55:10
7# soporaeternus
效率问题
数据量大的话其实还是很好
最好用MEANS过程

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 05:20