楼主: 番茄奏鸣曲
515 1

[问答] 关于宏导入TXT文件问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

81%

还不是VIP/贵宾

-

威望
0
论坛币
2134 个
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
4638 点
帖子
64
精华
0
在线时间
91 小时
注册时间
2012-2-20
最后登录
2019-3-2

番茄奏鸣曲 发表于 2017-2-12 13:45:11 |显示全部楼层
20论坛币
大概问题是这样子的,有三份美国三个州的失业数据,和下图一样的TXT文件,只是州的名字和数据不同,别的格式全部都一样。
1.JPG


然后通过宏导入SAS
%macro import(GAUR);
data &GAUR;
infile "E:\state\&GAUR..txt" firstobs = 13;
input Date YYMMDD10. Value 13-16;
State = 'GA';
run;
%mend;
%import(GAUR);
proc print;
format date YYMMDD10.;
run;
2.JPG

run出来也没有什么问题,然后如果我改变%import(GAUR);括号里面的GAUR的话数据也会跟着改变成其他州。
好,我的问题1.是如果把代码改成:

%macro import3(…);
data …
%mend;
%import3(GA KY TN)
这样的方式我应该怎么写呢?大概知道要用%do i=1 %to 3;还有%let 什么的,但是具体怎么做我想不出

2. 同时还可以%do %while去做,这个怎么弄啊?

3.最后如果说我要让三个州全部显示出来的话像下面的图(别去在意上面的数字啊,是乱打的)我应该加一点什么在我最开始的命令上啊?谢谢
3.JPG

最佳答案

lovexialulu 查看完整内容

调用三次 不就好了,再加个宏变量,宏本来就是做重复的事情的
关键词:txt import infile format Macro
stata SPSS
lovexialulu 发表于 2017-2-12 13:45:12 |显示全部楼层
调用三次 不就好了,再加个宏变量,宏本来就是做重复的事情的
  1. %macro import(GAUR,cd);
  2. data &GAUR;
  3. infile "E:\state\&GAUR..txt" firstobs = 13;
  4. input Date YYMMDD10. Value 13-16;
  5. State = "&cd.";
  6. proc print;
  7. format date YYMMDD10.;
  8. run;
  9. run;
  10. %mend;
  11. %import(GAUR,GA);
  12. %import(KYUR,KY);
  13. %import(TNUR,TN);

  14. data want;
  15. set gaur kyur tnur;
  16. proc sort;by date state;
  17. run;
复制代码
回复

使用道具 举报

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

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

GMT+8, 2019-5-21 23:23