楼主: hsst
3053 10

[问答] 关于数值型变量格式问题咨询 [推广有奖]

  • 0关注
  • 10粉丝

博士生

91%

还不是VIP/贵宾

-

威望
0
论坛币
974 个
通用积分
0.0145
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
51057 点
帖子
266
精华
0
在线时间
487 小时
注册时间
2010-7-2
最后登录
2021-5-14

楼主
hsst 在职认证  发表于 2013-4-15 12:08:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在我需要把一个数值型变量x(length 8、format best12. 、informat 12. )格式改为(length 8、format YEAR4. )请问如何达成目标,求高手指点。。
二维码

扫码加我 拉你入群

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

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

关键词:数值型 informat informa format length 咨询 目标 如何

沙发
yongyitian 发表于 2013-4-15 12:33:35
data aaa;
     format var1 best12.;
   informat var1 12.;
   var1 = 2013;
run;
proc contents data=aaa; run;

data bbb (rename=(var2=var1));
    set aaa;
        format var2 year4.;
        var2 = var1;
        drop var1;
run;

proc contents data=bbb; run;

proc sql;
   alter table aaa
   modify var1 format year4.;
quit;
proc contents data=aaa; run;
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
hsst + 1 + 1 + 1 热心
rdwalk + 1 + 1 + 1 分析的有道理

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
rdwalk 发表于 2013-4-15 12:57:52
yongyitian 发表于 2013-4-15 12:33
data aaa;
     format var1 best12.;
   informat var1 12.;
two methods,good!

板凳
hsst 在职认证  发表于 2013-4-15 15:09:36
yongyitian 发表于 2013-4-15 12:33
data aaa;
     format var1 best12.;
   informat var1 12.;
格式是可以改成功。但新的问题出现了,我的这个变量是一列是年份的值比如1991,1992,1993,1994,1993,1994,1995,1996。但发现改格式后全部变成是1965,不知这是什么原因?求指教,谢谢

报纸
hsst 在职认证  发表于 2013-4-15 15:10:33
rdwalk 发表于 2013-4-15 12:57
two methods,good!
按照楼上的指教,格式是确实是可以改成功。但新的问题出现了,我的这个变量是一列是年份的值比如1991,1992,1993,1994,1993,1994,1995,1996。但发现改格式后全部变成是1965,不知这是什么原因?求指教,谢谢

地板
pobel 在职认证  发表于 2013-4-15 15:28:21
hsst 发表于 2013-4-15 15:10
按照楼上的指教,格式是确实是可以改成功。但新的问题出现了,我的这个变量是一列是年份的值比如1991,19 ...
那是因为YEARw.这个format是作用在表示日期的值上的。
而SAS中日期的值是指距离1960年1月1日的天数。如果值是1991,则表示1960年1月1日后的第1991天,应该是1965年6月14日。所以用YEAR4.这个format会显示1965
和谐拯救危机

7
hsst 在职认证  发表于 2013-4-15 15:36:02
pobel 发表于 2013-4-15 15:28
那是因为YEARw.这个format是作用在表示日期的值上的。
而SAS中日期的值是指距离1960年1月1日的天数。如果 ...
学习了,谢谢

8
hsst 在职认证  发表于 2013-4-15 15:38:41
pobel 发表于 2013-4-15 15:28
那是因为YEARw.这个format是作用在表示日期的值上的。
而SAS中日期的值是指距离1960年1月1日的天数。如果 ...
这意味着我想保留1991,1992这些数字不变,而只是格式改变的目的是无法实现了?

9
pobel 在职认证  发表于 2013-4-15 15:45:11
hsst 发表于 2013-4-15 15:38
这意味着我想保留1991,1992这些数字不变,而只是格式改变的目的是无法实现了?
format x 4.;  就能显示1991, 1992, ...

如果一定要用YEAR4.这个format,恐怕只能做一个新变量了:

   y=mdy(1,1,x);
   format y year4.;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
hsst + 1 + 1 + 1 热心人,回答的方法正确可用

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

和谐拯救危机

10
hsst 在职认证  发表于 2013-4-15 15:50:06
pobel 发表于 2013-4-15 15:45
format x 4.;  就能显示1991, 1992, ...

如果一定要用YEAR4.这个format,恐怕只能做一个新变量了:
已得到想要结果,谢谢。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-2 14:41