楼主: henryyhl
5179 0

[问答] 关于SAS anydtdte informat 混合日期 输入格式 的疑问 [推广有奖]

  • 67关注
  • 5粉丝

已卖:2份资源

副教授

56%

还不是VIP/贵宾

-

威望
0
论坛币
26 个
通用积分
17.7240
学术水平
18 点
热心指数
17 点
信用等级
11 点
经验
47974 点
帖子
504
精华
0
在线时间
1102 小时
注册时间
2011-11-4
最后登录
2025-6-21

楼主
henryyhl 发表于 2014-6-24 09:15:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最近看Cody的SAS Function by Example 2 nd edition。其中1.19是为了读入混合的日期格式。

* Program 1.19: Reading dates in a mixture of formats;
***Primary function: INDEXC;
***Other function: INPUT;

***Program to read mixed dates;
data mixed_dates;
   input @1 Dummy $15.;
   if indexc(dummy,'/-:') then Date = input(Dummy,mmddyy10.);
   else Date = input(Dummy,date9.);
   format Date worddate.;
datalines;
10/21/1946
06JUN2002
5-10-1950
7:9:57
;
title "Listing of Data Set MIXED_DATES";
proc print data=mixed_dates noobs;
run;
其中后面也说可以用 ANYDTDTE 格式读入,但是不是期望的结果。后来查到crackman 的帖子:http://crackman.net/?p=1221, 用 options datestyle= mdy 可以将第3个观测(5-10-1950)按照预期的读入。

程序如下:options datestyle= mdy;
data mixed_dates2;   
input @1 Date anydtdte10.;  
format Date worddate.;
datalines;
10/21/1946
06JUN2002
5-10-1950
7:9:57
;

title "Listing of Data Set MIXED_DATES";
proc print data=mixed_dates2 ;
run;

但是第4个观测(7:9:57)用 anydtdte读入后是1960年1月1日。如何将其读成日期呢?
谢谢!
Obs          Date
1     October 21, 1946                                   
2         June 6, 2002                                    
3      October 5, 1950                                    
4      January 1, 1960






二维码

扫码加我 拉你入群

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

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

关键词:anydtdte informat informa inform format function formats title

It's not going to be easy, but it is going to be worth it.

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 02:48