楼主: bananacindy
1195 0

请教用infile指令同时导入多个raw data文件的问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

93%

还不是VIP/贵宾

-

威望
0
论坛币
757 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
517 点
帖子
50
精华
0
在线时间
169 小时
注册时间
2013-4-20
最后登录
2020-6-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问在下面的程序中,如果我的目的是将dat1.dat  dat2.dat  dat3.dat中的全部观测导入到data new中的话,如果不加do until...end或do while...end,为什么只能导入这三个dat中的第一个观测呢?如果加的话,我发现data until加在infile指令之前和之后都是可以完整输出全部3*3=9个观测的,而data while必须加在infile指令之后,否则只能输出dat1.dat中的全部3个观测。这是为什么呢?
  1. /*此段用于生成dat1 dat2 dat3这三个raw data文件,不用看*/
  2. data a;
  3. input x y;
  4. cards;
  5. 1 11
  6. 2 22
  7. 3 33
  8. ;
  9. run;
  10. data b;
  11. input x y;
  12. cards;
  13. 4 44
  14. 5 55
  15. 6 66
  16. ;
  17. run;
  18. data c;
  19. input x y;
  20. cards;
  21. 7 77
  22. 8 88
  23. 9 99
  24. ;
  25. run;

  26. data _null_;
  27. set a;
  28. file dat1;
  29. put x y;
  30. run;

  31. data _null_;
  32. set b;
  33. file dat2;
  34. put x y;
  35. run;

  36. data _null_;
  37. set c;
  38. file dat3;
  39. put x y;
  40. run;
  41. /*raw data生成完毕*/

  42. /*用do until*/
  43. data new;
  44. do i = 1 to 3;
  45. nextfile="dat"||put(i,1.)||".dat";
  46. do until(lastfile);
  47. infile temp filevar=nextfile end=lastfile;
  48. input x y;
  49. output;
  50. end;
  51. end; stop;run;

  52. /*用do while*/
  53. data new;
  54. do i = 1 to 3;
  55. nextfile="dat"||put(i,1.)||".dat";
  56. infile temp filevar=nextfile end=lastfile;
  57. do while(lastfile=0);
  58. input x y;
  59. output;
  60. end;
  61. end; stop;run;
复制代码

二维码

扫码加我 拉你入群

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

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

关键词:infile file Data NFI raw sas infile concatenate

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 01:05