由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 包子请教,时间格式问题
相关主题
【包子】date 变量 赋值问题求助:sas不同格式的日期比较
请教个SAS问题need sas debug help!! Please...
再问一个sas输出的问题 (export)SAS question using PROC SQL 高手请进, 包子答谢
SAS时间处理求教Import excel file to SAS
大家练练手吧,挺有意思的一道题工作中的SAS 编程请教
大牛们, SAS code 求助proc sql - SAS 10 包子请教
请教一个sas的sort date变量问题问个survival的小白问题。
SAS 日期格式 YYMMDDn8.请教SAS的问题,时间变量读取,包子答谢
相关话题的讨论汇总
话题: date2话题: date1话题: 00话题: 21may2001话题: 01jan2001
进入Statistics版参与讨论
1 (共1页)
f*******i
发帖数: 8492
1
我现在已有一个sas格式现成的data sheet
其中date1的格式是这样的 21MAY2001:00:00:00
但这组数据是character, 而不是date value
所以我需要把这组数据转换成sas的date value,并且减去 "01JAN2001"得到差值
我的code如下:
data homework10;
set class.homework10;
date2=input(date1,date9.);
format date2 date9.;
range=date2-'01JAN2001'dt;
run;
proc print data=homework10;
var date1 date2 range;
run;
现在我的问题,经过打印,我得到的date2确实只是date1里面的日期部分
1. 我所有的date2数值理论上都是大于01JAN2001这个值的,但是得出的range都是负值
,这事怎
么回事? 比如“-1277926548”。
2. 如何把range这个数据以“天数”的形式表示?
谢谢
EA
发帖数: 3965
2
21MAY2001:00:00:00 is datetime format not date9. you should use datetime17.
h******s
发帖数: 3420
3
这个难道不是numeric value?

【在 EA 的大作中提到】
: 21MAY2001:00:00:00 is datetime format not date9. you should use datetime17.
d******9
发帖数: 404
4
"其中date1的格式是这样的 21MAY2001:00:00:00"
包括时间部分,应该用 datetime16.读入,然后把时间部分去除。
dateonly=datepart(date1);
f*******i
发帖数: 8492
5
是这样的,我已经有一个datasheet,homework10.sas7bdat
然后,其中的date1格式就是“21MAY2001:00:00:00”, 但这个不是numeric value,
而是character
所以我根据楼上说的,先把date1读写为numeric value的date2,再从中提取date部分
data homework10;
set class.homework10;
date2=input(date1,date16.);
format date2 date16.;
date3=datepart(date2);
format date3 date9.;
range=date3-'01JAN2001'dt;
run;
proc print data=homework10;
var date1 date2 date3 range;
run;
如果时间格式是“21MAY2001:00:00:00”, 那么datetime后面跟着的数字是应该取15,
16,17,还是18?
我现在无论取那个数,得到的date2,都是这种格式“21MAY01:00:00:00”,并且得到
得date3是21
f*******i
发帖数: 8492
6
另外有个问题
比如
01JAN2000:00:00:00
date是9位
time是6位
datetime17. 多出来的两位是怎么来的?
h******e
发帖数: 1791
7
时间里的:也算。

【在 f*******i 的大作中提到】
: 另外有个问题
: 比如
: 01JAN2000:00:00:00
: date是9位
: time是6位
: datetime17. 多出来的两位是怎么来的?

q******d
发帖数: 158
8
use datepart(date1), then you can get the date1=21May2001

【在 f*******i 的大作中提到】
: 我现在已有一个sas格式现成的data sheet
: 其中date1的格式是这样的 21MAY2001:00:00:00
: 但这组数据是character, 而不是date value
: 所以我需要把这组数据转换成sas的date value,并且减去 "01JAN2001"得到差值
: 我的code如下:
: data homework10;
: set class.homework10;
: date2=input(date1,date9.);
: format date2 date9.;
: range=date2-'01JAN2001'dt;

1 (共1页)
进入Statistics版参与讨论
相关主题
请教SAS的问题,时间变量读取,包子答谢大家练练手吧,挺有意思的一道题
一个SAS 问题,紧急!大牛们, SAS code 求助
【包子】SAS 日期和时间问题请教一个sas的sort date变量问题
a question regarding sas programmingSAS 日期格式 YYMMDDn8.
【包子】date 变量 赋值问题求助:sas不同格式的日期比较
请教个SAS问题need sas debug help!! Please...
再问一个sas输出的问题 (export)SAS question using PROC SQL 高手请进, 包子答谢
SAS时间处理求教Import excel file to SAS
相关话题的讨论汇总
话题: date2话题: date1话题: 00话题: 21may2001话题: 01jan2001