由于有些字段太长用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;