我有一个Excel文件,其列可以为null或包含日期值,但在将其导入SAS时,我需要使用的格式为DATE9
。只要该列不完全为null,它就可以工作,但在某些情况下,它会被导入SAS
作为$CHAR1
。
如果这样做有所不同,则单元格格式已为date
。
答案 0 :(得分:4)
好的,我假设您已获得许可的SAS文件格式的SAS访问权限。您应该能够使用数据集选项DBSASTYPE,它强制SAS使用所述数据类型,而不管输入数据的外观如何。在您的情况下,您希望它设置为数字,然后您可以使用DATE9。格式化它。代码看起来应该如下所示,我现在无法测试它。
DATA WORK.excel_file;
set excel.spreadsheet (dbsastype=(column_name=numeric));
format column_name date9.;
run;
答案 1 :(得分:1)
我认为您需要在导入后重新定义该列。 像这样:
data importedExcel(drop=suspiciousVariable2);
set importedExcel(rename=(suspiciousVariable=suspiciousVariable2));
attrib suspiciousVariable length=8 format=date9.;
suspiciousVariable=suspiciousVariable2 + 0;
run;
答案 2 :(得分:0)
如果使用数据步骤而不是proc导入导入,则可以轻松定义每个变量的格式。以下链接提供了一个相当不错的示例:http://www2.sas.com/proceedings/sugi30/038-30.pdf