楼主: 没、名儿
2242 8

SAS中怎么返回某一个指定的符号变量 [推广有奖]

  • 0关注
  • 0粉丝

高中生

2%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
145 点
帖子
11
精华
0
在线时间
17 小时
注册时间
2014-7-25
最后登录
2016-7-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如
data A;
input id x $;
cards;
1 2012-01-02
2 1 2012-01-03
3 2012-01-04;
run;

有一个宏%macro(x)    /*x输入类似2012-01-02的变量*/

后面怎么用循环语句
输入 数组里面的x的三个日期啊?
二维码

扫码加我 拉你入群

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

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

关键词:cards Macro Input Data 循环语句

沙发
Eternal0601 发表于 2014-7-27 09:45:24 |只看作者 |坛友微信交流群
cards貌似不能在macro中使用

使用道具

藤椅
没、名儿 发表于 2014-7-27 09:50:02 |只看作者 |坛友微信交流群
Eternal0601 发表于 2014-7-27 09:45
cards貌似不能在macro中使用
是啊。 但是那个data步不在宏里面。。
只是想调用那三个日期而已。。。

使用道具

板凳
Eternal0601 发表于 2014-7-27 10:04:00 |只看作者 |坛友微信交流群
data _null_;
  set a end=eof;
  call symputx(cats('x',_n_),x);
  if eof then call symputx('_obs',_n_);
run;

%put &=x1 &=x2 &=x3;

使用道具

报纸
没、名儿 发表于 2014-7-27 12:50:56 |只看作者 |坛友微信交流群
Eternal0601 发表于 2014-7-27 10:04
data _null_;
  set a end=eof;
  call symputx(cats('x',_n_),x);
为什么输出来只有 2012-01-
少了一小段呢?

使用道具

地板
Eternal0601 发表于 2014-7-27 13:36:30 |只看作者 |坛友微信交流群
没、名儿 发表于 2014-7-27 12:50
为什么输出来只有 2012-01-
少了一小段呢?
那是你数据集a有问题,换成下面就ok了
data A;
input id x $10.;
cards;
1 2012-01-02
2 2012-01-03
3 2012-01-04
;
run;

使用道具

7
没、名儿 发表于 2014-7-30 22:01:04 |只看作者 |坛友微信交流群
Eternal0601 发表于 2014-7-27 13:36
那是你数据集a有问题,换成下面就ok了
data A;
input id x $10.;
弱弱的再问一句。。。

比如我想用x 输出 2012-01-02第三天的日期(日期不连续,就像上面的例子)
怎么输啊?

使用道具

8
Eternal0601 发表于 2014-7-30 22:47:00 |只看作者 |坛友微信交流群
没、名儿 发表于 2014-7-30 22:01
弱弱的再问一句。。。

比如我想用x 输出 2012-01-02第三天的日期(日期不连续,就像上面的例子)
你可以看下INTNX Function

使用道具

9
freerunning_sky 在职认证  发表于 2014-7-31 11:16:26 |只看作者 |坛友微信交流群
  1. data A;
  2. input id x :$15.;
  3. cards;
  4. 1 2012-01-02
  5. 2 2012-01-03
  6. 3 2012-01-04
  7. ;
  8. run;

  9. proc sql noprint;
  10.         select x into :date_list separated by " " from a;
  11. quit;

  12. %macro mar_tmp(x);
  13.         %put &x.;
  14. %mend;

  15. %macro tmp;
  16.         %let i=1;
  17.         %do %while(%scan(&date_list,&i.," ")~=);
  18.                 %let date=%scan(&date_list,&i.," ");
  19.                 %mar_tmp(&date.);
  20.                 %let i=%eval(&i.+1);
  21.         %end;
  22. %mend;
  23. %tmp;
复制代码

使用道具

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

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

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

GMT+8, 2024-4-25 15:17