楼主: sugar糖糖
1950 4

[问答] 【求问】继承的日期转换代码,小白求解释~~ [推广有奖]

  • 0关注
  • 0粉丝

高中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
29 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
166 点
帖子
15
精华
0
在线时间
42 小时
注册时间
2018-9-3
最后登录
2019-5-24

楼主
sugar糖糖 发表于 2018-9-20 14:26:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
同事离职了继承了一段代码,无奈刚学sas实在看不懂。。百度也百度不出来。。求各位大神解释~~无比感恩~~

data _null_;     /*_null_ : 不创建数据集*/
       yyyymmdd=sum(year(&dte.)*10000,month(&dte.)*100, day(&dte.));
       Last_yyyymmdd=sum(year(&last_month_dte.)*10000,month(&last_month_dte.)*100, day(&last_month_dte.));
       ymd=compress(put(yyyymmdd,8.));   
       ym=compress(put(sum(year(&dte.)*100,month(&dte.)),6.));
       ym_n=sum(year(&dte.)*100,month(&dte.));
       last_ymd=compress(put(Last_yyyymmdd,8.));
       last_ym=compress(put(sum(year(&last_month_dte.)*100,month(&last_month_dte.)),6.));

       call symput('ymd',ymd);
       call symput('ym',ym);
       call symput('last_ymd',last_ymd);   
       call symput('last_ym',last_ym);
       call symput('ym_n',ym_n);
run;
二维码

扫码加我 拉你入群

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

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

关键词:数据集

回帖推荐

steven_1017 发表于4楼  查看完整内容

data _null_; /*_null_ : 不创建数据集*/ yyyymmdd=sum(year(&dte.)*10000,month(&dte.)*100, day(&dte.)); /*此处的yyyymmdd = 20180831*/ Last_yyyymmdd=sum(year(&last_month_dte.)*10000,month(&last_month_dte.)*100, day(&last_month_dte.)); /*此处last_yyyymmdd = 20150801*/ ymd=compress(put(yyyymmdd,8.)); /*用put转为character,compress去掉blanks,ymd = ‘20180831’*/ ...
已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

沙发
steven_1017 发表于 2018-9-21 11:09:15
找一找前面是否定义过一个macro,就是用&dte.解析的那个。不然看不明白。

藤椅
sugar糖糖 发表于 2018-9-21 14:42:01
steven_1017 发表于 2018-9-21 11:09
找一找前面是否定义过一个macro,就是用&dte.解析的那个。不然看不明白。
上一个部分就是这些了:

%let dte='31aug2018'd;
%let last3y_dte='01aug2015'd;
%let last_month_dte=mdy(month(&dte.),1,year(&dte.))-1;

板凳
steven_1017 发表于 2018-9-22 07:22:54
data _null_;     /*_null_ : 不创建数据集*/
       yyyymmdd=sum(year(&dte.)*10000,month(&dte.)*100, day(&dte.));
/*此处的yyyymmdd = 20180831*/
       Last_yyyymmdd=sum(year(&last_month_dte.)*10000,month(&last_month_dte.)*100, day(&last_month_dte.));
/*此处last_yyyymmdd = 20150801*/
       ymd=compress(put(yyyymmdd,8.));   
/*用put转为character,compress去掉blanks,ymd = ‘20180831’*/
       ym=compress(put(sum(year(&dte.)*100,month(&dte.)),6.));
/*ym = ‘201808’*/
       ym_n=sum(year(&dte.)*100,month(&dte.));
/*ym_n = 201808*/
       last_ymd=compress(put(Last_yyyymmdd,8.));
/*与上面的put、compress一样,last_ymd = '20150801'*/
       last_ym=compress(put(sum(year(&last_month_dte.)*100,month(&last_month_dte.)),6.));
/*last_ym = '201508'*/

       call symput('ymd',ymd);
       call symput('ym',ym);
       call symput('last_ymd',last_ymd);   
       call symput('last_ym',last_ym);
/*call symput将ym, ymd, last_ym, last_ymd等character数据赋值给macro变量,例如call symput('ym',ym);相当于%let ym = '201808'*/
       call symput('ym_n',ym_n);
/*此处会给出note,因为ym_n是numeric类型,会出现类型转换*/
run;

报纸
sugar糖糖 发表于 2018-9-25 17:22:07
steven_1017 发表于 2018-9-22 07:22
data _null_;     /*_null_ : 不创建数据集*/
       yyyymmdd=sum(year(&dte.)*10000,month(&dte.)*100,  ...
感恩大神!!

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

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