请选择 进入手机版 | 继续访问电脑版
楼主: O(∩_∩)O~!
6354 11

请教SAS月份转季度的问题? [推广有奖]

  • 0关注
  • 1粉丝

讲师

19%

还不是VIP/贵宾

-

威望
0
论坛币
3994 个
通用积分
13.4290
学术水平
6 点
热心指数
16 点
信用等级
5 点
经验
8892 点
帖子
278
精华
0
在线时间
333 小时
注册时间
2010-8-5
最后登录
2022-8-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好!
    我有一个数据集,从时间来看里面有27个月的数据,时间记录格式是类似于 201001 这样的,导到SAS后格式是BEST12.,不是日期格式,现在需要根据月度值计算出相应的季度,直接用QTR()函数,结果是错误的,请问是为什么?该如何解决,多谢
二维码

扫码加我 拉你入群

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

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

关键词:Best Est 大家好 数据集 记录 如何

mymine 发表于 2012-6-11 16:19:31 |显示全部楼层 |坛友微信交流群
假设原表中的时间字段为time

data a;
set a;
t1=qtr(mdy(substr(left(time),5,2),'01',substr(left(time),1,4)));
run;

使用道具

mymine 发表于 2012-6-11 16:19
假设原表中的时间字段为time

data a;
这样能实现,非常感谢,只是我不知道为什么是这样?能否指点一下?直接用qtr函数出来的时间不对。

使用道具

mymine 发表于 2012-6-11 22:08:55 |显示全部楼层 |坛友微信交流群
qtr计算季度的变量的类型应该是日期型,mdy函数是将三个字段转换为日期型
substr(left(time),5,2)是月
'01'自己添加的日
substr(left(time),1,4)是年
已有 1 人评分学术水平 热心指数 收起 理由
O(∩_∩)O~! + 1 + 1 分析的有道理

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

mymine 发表于 2012-6-11 22:08
qtr计算季度的变量的类型应该是日期型,mdy函数是将三个字段转换为日期型
substr(left(time),5,2)是月
'0 ...
又学了一招,谢谢

使用道具

yuwenhuajiayou 学生认证  发表于 2013-1-17 14:00:45 |显示全部楼层 |坛友微信交流群
谢谢,学习了!

使用道具

gougou11 发表于 2013-1-24 09:41:59 |显示全部楼层 |坛友微信交流群
学习了
泰山石敢当

使用道具

henryyhl 发表于 2013-1-24 16:33:33 |显示全部楼层 |坛友微信交流群
data one;  **示例数据;
input time;
cards;
201001
196001
201210
;
run;
data two;
set one;
q0=put(time,6.);  ***将time转换为字符型变量q0;
***q=input(left(time),yymmn6.);
q=input(q0,yymmn6.);  **将原来数值型的time改为表示sas时间的q;
qt=qtr(q);  **qt即为所求的季度;
drop q0;
run;
It's not going to be easy, but it is going to be worth it.

使用道具

oneoneagain 发表于 2013-1-25 00:04:50 |显示全部楼层 |坛友微信交流群
转换成时间格式,就行了,就是八楼那样的,学习了!

使用道具

fromsummer 发表于 2013-8-14 14:51:11 |显示全部楼层 |坛友微信交流群
涨姿势了

使用道具

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

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

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

GMT+8, 2024-4-19 08:57