如何强制excel中的列没有值作为日期列导入

时间:2014-10-01 14:35:27

标签: excel sas

我有一个Excel文件,其列可以为null或包含日期值,但在将其导入SAS时,我需要使用的格式为DATE9。只要该列不完全为null,它就可以工作,但在某些情况下,它会被导入SAS作为$CHAR1

如果这样做有所不同,则单元格格式已为date

3 个答案:

答案 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