全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5001 2
2015-01-31
悬赏 15 个论坛币 已解决
各位大神好,小弟想通过sas9.2将一个excel文件的字符型转化为日期型。比如  1991-01(只有年月)
请各位指点一下应该怎么办呢?谢谢。从网上看了  input(varible,yymmd7.)程序报错

最佳答案

就喜欢马 查看完整内容

SAS中日期是被看作是数值型,所有日期型变量被作为是输入日期与1960年1月1日之差。如1960-1-1, SAS会认为这个值是0。所以只有年月的字符日期是没法转化为数值的,必须年月日全有。如果将只有年月的日期当成每月第一天算,即1991-01当成1991-01-01,可以参考以下语句:大概意思就是对日期判定,如果日期长度大于等于8,保留;如果小于8,在原变量基础上增加'-01',最后再用input把字符转化为数值。
二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-31 09:53:38
SAS中日期是被看作是数值型,所有日期型变量被作为是输入日期与1960年1月1日之差。如1960-1-1, SAS会认为这个值是0。所以只有年月的字符日期是没法转化为数值的,必须年月日全有。如果将只有年月的日期当成每月第一天算,即1991-01当成1991-01-01,可以参考以下语句:
复制代码
大概意思就是对日期判定,如果日期长度大于等于8,保留;如果小于8,在原变量基础上增加'-01',最后再用input把字符转化为数值。
二维码

扫码加我 拉你入群

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

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

2015-1-31 11:38:46
就喜欢马 发表于 2015-1-31 09:53
SAS中日期是被看作是数值型,所有日期型变量被作为是输入日期与1960年1月1日之差。如1960-1-1, SAS会认为这 ...
谢谢您
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群