引擎为xlsx的import数据导入弊端问题解决

本文介绍了如何在使用SAS时处理从Excel导入的日期数据,避免将日期读作字符型数字。方法是将Excel中的日期输入转换为数值型,考虑到Excel以1900年1月1日计数,而SAS以1960年1月1日计数,通过减去适当的偏移量并格式化回字符型日期。
摘要由CSDN通过智能技术生成

由于有些字段太长用excel读取会发生截断,建议用xlsx读取

1、弊端

会将excel表中的日期读成字符型的数字。

2、解决方法

input成数值型,减去21916(由于EXCEL以“1900年1月1日”作为第一天;而SAS中以“1960年1月1日”作为第0天。参考网页:https://www.jianshu.com/p/96b06ed71a1a。由于在EXCEL中的1900年,有“2月29日”,所以input后,当数值在0到60,则减21915;数值大于60,则减21916),再put成字符型,给上format。

3、举例

proc import
  datafile = "&_raw_.\xxx.xlsx" OUT=output_dv
  dbms = xlsx replace;
  SHEET="Sheet1";
  datarow=x;
run;
data output_dv;
  set output_dv;
    if length(ccc1)<=10 and ccc1^='NA' then do;
      ccc1=put(input(ccc1,best.)-21916,yymmdd10.);
      ccc1=tranwrd(ccc1,'-0','/');
      ccc1=tranwrd(ccc1,'-','/');
    end;
run;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值