全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
38180 9
2010-08-24
悬赏 50 个论坛币 已解决
在读入sas文件的时候,源文件格式为csv的,可以用Excel2007打开,但在读入sas的过程中出现了问题,下面的格式应该是用sas里的yyyymmdd:hh:mm:ss.s格式,但读入的时候是默认为字符串的。请问这个怎么处理?
2010/7/1 7:47:35
2010/11/1 17:47:35
2010/7/12 3:47:35

最佳答案

soporaeternus 查看完整内容

一个很傻的办法,利用时间中那个空格 年月日和时分秒分开导入,然后需要datetime型的话,计算生成下
二维码

扫码加我 拉你入群

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

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

全部回复
2010-8-24 14:35:40
复制代码
一个很傻的办法,利用时间中那个空格
年月日和时分秒分开导入,然后需要datetime型的话,计算生成下
二维码

扫码加我 拉你入群

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

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

2010-8-24 15:19:44
方法一:直接使用SAS的PROC IMPORT,可以直接识别DATETIME格式(SAS版本9.2)
PROC IMPORT OUT= WORK.T5
            DATAFILE= "C:\temp.csv"
            DBMS=CSV REPLACE;
     GETNAMES=NO;
     DATAROW=1;
RUN;

方法二:比较麻烦点
/*因为datetime的informat中的date部分只能是ddmmmyy或ddmmmyyyy的格式,如31jan2007,所以你提供的格式如使用datetime格式,系统无法识别,因此要手动去分别读取时间和日期再整合成一个变量*/
data temp;
input date yymmdd10. time time10.;
datetime=date*24*3600+time;
format datetime datetime20.;
cards;
2010/07/01 07:47:35
2010/11/01 17:47:35
2010/07/12 03:47:35
run;

补充说明:

1.SAS ENTERPRISE GUIDE 4.2中对数据导入提供了非常方便的操作界面。可以指定每一个变量的属性及格式。推荐使用

2. Datetime 对应的几种格式,供参考

30May2000:10:03:17.2    DATETIME20.
30May00 10:03:17.2        DATETIME18.
30May2000/10:03            DATETIME15.

3. 格式规范问题
很多日期数据不规范,如 2010/7/1 7:47:35
而真正规范的应该是,2010/07/01 07:47:35  
然而,往往正是这些不规范的数据导致了导入数据的出错。
二维码

扫码加我 拉你入群

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

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

2010-8-24 15:30:58
把这些格子选中没有出现惊叹号让"CONVERT TO NUMBER"吗?
二维码

扫码加我 拉你入群

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

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

2010-8-24 16:12:23
有一点我搞不明白,1,3,5,6这些是用来干嘛的? 2# soporaeternus
二维码

扫码加我 拉你入群

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

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

2010-8-24 16:18:02
原文件是csv文件,可能会有其他变量,并且分隔符是“,”
测试下其他变量是否可以顺利导入......
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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