楼主: kongqunyu
7897 6

[问答] 导入 日期时间型变量 如何设置 [推广有奖]

  • 10关注
  • 2粉丝

已卖:91份资源

副教授

37%

还不是VIP/贵宾

-

威望
0
论坛币
2977 个
通用积分
0.4469
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
14732 点
帖子
182
精华
0
在线时间
1274 小时
注册时间
2008-7-16
最后登录
2019-1-7

楼主
kongqunyu 发表于 2011-12-7 09:19:52 |AI写论文
10论坛币
这个是导入的 infile:

data  k;
infile 'E:\MHHR\Followup\sq_fyqk.csv'
dlm=',' missover dsd lrecl=32767 firstobs=1;
input  
GRBM $  SFRQ  datetime.  FYXH   YM $
MCJL $   FYCS   BLFY $  trans_flag $  
YPMC $  YPXH   GXSJ  datetime.;run;

原csv文件里面一条记录如下:    时间是红色字体显示:
31011200000000308391, 2009-09-30  23:59:59.000,130,80,1,1,,,2,4,99,3,12101BSSA,2,12121,1212109,NULL,NULL,
2011-05-28  11:58:35.057


第二个 sfrq  和最后一个 gxsj  是日期型的   可以帮忙吗  ??  附件 用于测试程序在下面楼层    请高手帮忙   在线诚恳等待




最佳答案

bobguy 查看完整内容

The problem is that you define fewer fields than your data implies. You input fields are not aligned with your data. I add dummy1-dummy9 (9) fields. It should take care your problem. See example below. data k; length GRBM $20 SFRQ FYXH 8 YM $8 MCJL $8 FYCS 8 BLFY $8 trans_flag dummy1-dummy9 YPMC YPXH $8 GXSJ 8; infile cards /*'E:\MHHR\Followup\sq_fyqk.csv'*/ dlm=',' ...
关键词:datetime missover infile follow lrecl 如何

沙发
bobguy 发表于 2011-12-7 09:19:53
kongqunyu 发表于 2011-12-7 10:32
这个是导入的 infile:

data  fyqk;
The problem  is that you define fewer fields than your data implies. You input fields are not aligned with your data. I add dummy1-dummy9 (9) fields. It should take care your problem. See example below.

data  k;
length GRBM $20 SFRQ FYXH 8 YM $8
       MCJL $8  FYCS 8   BLFY $8  trans_flag dummy1-dummy9 YPMC  YPXH $8
       GXSJ  8;
infile cards /*'E:\MHHR\Followup\sq_fyqk.csv'*/ dlm=',' missover dsd linesize=260 firstobs=1;
input  
GRBM    SFRQ anydtdtm20.   FYXH   YM
MCJL    FYCS   BLFY   trans_flag  dummy1-dummy9
YPMC   YPXH   GXSJ  anydtdtm20.;
format SFRQ GXSJ datetime.;
cards;
31011200000000308391, 2009-09-30  23:59:59.000,130,80,1,1,,,2,4,99,3,12101BSSA,2,12121,1212109,NULL,NULL,2011-05-28  11:58:35.057
;

proc print;run;

藤椅
echotianxia 在职认证  发表于 2011-12-7 10:06:48
楼主多贴出些数据来好做测试程序之用

板凳
bobguy 发表于 2011-12-7 10:11:26
Use the informat anydtdtm20. will take care your problem.

data t1;
infile cards;
input  mydatetime anydtdtm20.;
cards;
2011-12-07  08:07:01
;
proc print DATA=T1;
FORMAT mydatetime datetime18.;
run;
  

报纸
kongqunyu 发表于 2011-12-7 10:11:52
echotianxia 发表于 2011-12-7 10:06
楼主多贴出些数据来好做测试程序之用
data mmbc.f;
infile 'E:\MHHR\Followup\sq_f.csv'
dlm=',' missover dsd lrecl=32767 firstobs=1;
input  
  aa datetim.  FYXH 6  YM $100
MCJL $10   FYCS 8  BLFY $1    bb datetime.;run;


其中 aa  bb  是日期时间型的  运行 SAS提示


NOTE: 在第 1 行、第 31-48 列中有对“aa”无效的数据。
NOTE: 在第 1 行、第 11-28 列中有对“bb”无效的数据。^^^ 下面还有很多,每一个观测都是这两个变量有问题

地板
kongqunyu 发表于 2011-12-7 10:32:54
bobguy 发表于 2011-12-7 10:11
Use the informat anydtdtm20. will take care your problem.

data t1;
这个是导入的 infile:

data  fyqk;
infile 'E:\MHHR\Followup\sq_fyqk.csv'
dlm=',' missover dsd lrecl=32767 firstobs=1;
input  
GRBM $30  SFRQ  datetime.  FYXH 6  YM $100
MCJL $10   FYCS 8  BLFY $1  trans_flag $1  
YPMC $1  YPXH 10  GXSJ  datetime.;run;

第二个 sfrq  和最后一个 gxsj  是日期型的   可以帮忙吗?

7
playmore 发表于 2011-12-8 09:10:21
SAS中的日期时间型是这样的16DEC2009:14:45:32
你的原数据的格式不符
可以先以字符型导入
在SUBSTR一下,分到两个变量中去就好了
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

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

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