楼主: mengfanshun
822 2

[问答] 使用宏变量进行变量值的替换 [推广有奖]

  • 4关注
  • 0粉丝

大专生

65%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
5.0414
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2115 点
帖子
30
精华
0
在线时间
82 小时
注册时间
2018-10-9
最后登录
2023-5-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问在data步中怎么定义宏变量,及调用宏变量呢?
标红部分如何修改?
data x;
format x mmddyy10.;
input x mmddyy10.;
datalines;
04252019
04242019
04232019
04222019
04212019
04202019
04192019
;
run;


data x3;
set x;
week=weekday(x);
week=week-1;
%let old=(0 1 2 3 4 5 6);
%let new=(星期天 星期一 星期一 星期一星期一 星期一 星期一);
if week=&old then do; wk=&new;
run;





二维码

扫码加我 拉你入群

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

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

关键词:变量值 weekday format FORMA data步

沙发
luekemia 发表于 2019-5-15 09:43:38 |只看作者 |坛友微信交流群
是想要这种效果么?代码:
data x;
format x mmddyy10.;
input x mmddyy10.;
datalines;
04252019
04242019
04232019
04222019
04212019
04202019
04192019
;
run;

%let old=0 1 2 3 4 5 6;
%let new=星期天 星期一 星期一 星期一 星期一 星期一 星期一;

%macro oldnew;
%let i=1;
%do %until (%scan(&old.,&i.)=);
if week=%scan(&old.,&i.) then wk="%scan(&new.,&i.)";
%let i=%eval(&i.+1);
%end;
%mend;

data x3;
set x;
week=weekday(x);
week=week-1;
%oldnew;
run;

使用道具

藤椅
mengfanshun 发表于 2019-5-18 16:40:36 |只看作者 |坛友微信交流群
luekemia 发表于 2019-5-15 09:43
是想要这种效果么?代码:
data x;
format x mmddyy10.;
是的!厉害!

使用道具

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

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

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

GMT+8, 2024-4-24 20:15