楼主: a252693398
1016 2

如何让后面的数据都成缺失。 [推广有奖]

  • 1关注
  • 0粉丝

大专生

83%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
16878 点
帖子
31
精华
0
在线时间
90 小时
注册时间
2012-7-30
最后登录
2025-6-26

楼主
a252693398 发表于 2014-1-15 13:34:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
t变量有6个数字,1,2,3,4,5,6代表次数,我编了一段程序让第4次的数据缺失,这个已经完成,然后我想让第4次以后数据,5,6也全部缺失,怎么弄?同理,如果第2次缺失,后面的3,4,5,6也同样缺失。
我的程序
  1. ************模拟六次数据****************;
  2. %macro pmm;
  3. data abv1(drop=seed1-seed4 );
  4.      seed1=111;seed2=222;seed3=333;seed4=444;
  5.      do i=1 to 100;
  6.           call rannor(seed1,x1);
  7.           call rannor(seed2,x2);
  8.           call rannor(seed3,x3);
  9.                   call rannor(seed4,e);
  10.           output;
  11.         end;
  12. run;
  13. %mend;
  14. %pmm
  15. %macro pmm;
  16. data abv2(drop=seed1-seed4 );
  17.      seed1=112;seed2=223;seed3=334;seed4=445;
  18.      do i=1 to 100;
  19.           call rannor(seed1,x1);
  20.           call rannor(seed2,x2);
  21.           call rannor(seed3,x3);
  22.                   call rannor(seed4,e);
  23.           output;
  24.         end;
  25. run;
  26. %mend;
  27. %pmm
  28. %macro pmm;
  29. data abv3(drop=seed1-seed4 );
  30.      seed1=113;seed2=224;seed3=335;seed4=446;
  31.      do i=1 to 100;
  32.           call rannor(seed1,x1);
  33.           call rannor(seed2,x2);
  34.           call rannor(seed3,x3);
  35.                   call rannor(seed4,e);
  36.           output;
  37.         end;
  38. run;
  39. %mend;
  40. %pmm
  41. %macro pmm;
  42. data abv4(drop=seed1-seed4 );
  43.      seed1=114;seed2=225;seed3=336;seed4=447;
  44.      do i=1 to 100;
  45.           call rannor(seed1,x1);
  46.           call rannor(seed2,x2);
  47.           call rannor(seed3,x3);
  48.                   call rannor(seed4,e);
  49.           output;
  50.         end;
  51. run;
  52. %mend;
  53. %pmm
  54. %macro pmm;
  55. data abv5(drop=seed1-seed4 );
  56.      seed1=115;seed2=226;seed3=337;seed4=448;
  57.      do i=1 to 100;
  58.           call rannor(seed1,x1);
  59.           call rannor(seed2,x2);
  60.           call rannor(seed3,x3);
  61.                   call rannor(seed4,e);
  62.           output;
  63.         end;
  64. run;
  65. %mend;
  66. %pmm
  67. %macro pmm;
  68. data abv6(drop=seed1-seed4 );
  69.      seed1=116;seed2=227;seed3=338;seed4=449;
  70.      do i=1 to 100;
  71.           call rannor(seed1,x1);
  72.           call rannor(seed2,x2);
  73.           call rannor(seed3,x3);
  74.                   call rannor(seed4,e);
  75.           output;
  76.         end;
  77. run;
  78. %mend;
  79. %pmm
  80. ***********************模拟六次数据完成;

  81. ***********************合并六次模拟数据***************;
  82. data b;
  83. set abv1-abv6;
  84. run;
  85. proc sort data=b;
  86.         by i;
  87. run;
  88. %macro pmm;
  89. data abcde;
  90.      do i=1 to 100;
  91.           do t=1 to 6;
  92.           output;
  93.           end;
  94.         end;
  95. run;
  96. %mend;
  97. %pmm
  98. data b1 ;
  99.         merge b abcde;
  100.         by i;
  101. run;
  102. *****************************合并六次数据完成*************;

  103. *****************************拟合方程********************;
  104. data b2;
  105.         set b1;
  106.                   y=-1+x1+x2+x3+t+x1*t+x2*t+x3*t+e;
  107. run;
  108. proc glm;
  109.       model y= x1 x2 x3 t  x1*t x2*t x3*t ;
  110. run;
  111. *****************************拟合方程完成****************;


  112. *****************************缺失百分之5****************;
  113. data b3;
  114.         set b2;
  115.         n+1;
  116. run;
  117. data b4(keep=n);
  118.         set b3;
  119. run;
  120. proc surveyselect data=b3 seed=778
  121.       method=srs rate=0.95 out=t1;
  122. run;
  123. data b5;
  124.         merge b4 t1;
  125.         by n;
  126. run;
  127. data b6;
  128.         set abcde;
  129.         n+1;
  130. run;
  131. data b7;
  132.         merge b5 b6;
  133.         by n;
  134. run;
复制代码
然后我想让b7数据集里面t变量中,如果4是缺失,那么5,6中x1x2x3ey变量都缺失,如果1缺失,则2,3,4,5,6都缺失,如何编写程序?求大牛指点。
二维码

扫码加我 拉你入群

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

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

关键词:surveyselect Surveys output Select Survey 程序 如何

沙发
pobel 在职认证  发表于 2014-1-15 17:14:20
data b8;
   set b7;
   by i t;
   retain flag;
   if first.i then flag=0;
   if flag then call missing(x1,x2,x3,e,y);
   flag=missing(y);
   drop flag;
run;
和谐拯救危机

藤椅
a252693398 发表于 2014-1-15 17:33:41
pobel 发表于 2014-1-15 17:14
data b8;
   set b7;
   by i t;
pobel, thanks very much。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 04:09