我正在SAS中的.csv文件中读取,其中一些字段在主体中填充为空值$iniContent = Get-IniContent “c:\temp\file.ini”
$iniContent[“Applications”]
$value = $iniContent[“Applications”][“app1”]
$iniContent[“Applications”].Keys | %{$iniContent["Applications"][$_]}
,少数字段由5位SAS日期填充。我需要SAS将字段识别为日期字段(或者至少是一个数字字段),而不是像现在一样在文本中读取它。
我的代码的简化版本如下:
.
使用此代码,所有值都以data test;
informat mydate date9.;
infile myfile dsd dlm ',' missover;
input
myfirstval
mydate
;
run;
读入,字段数据类型为文本。谁能告诉我在上面的代码中我需要改变什么来获得我需要的输出?
由于
答案 0 :(得分:0)
如果您编写数据步骤以读取CSV文件,SAS将创建变量作为您指定的数据类型。如果你告诉它MYDATE是一个数字,它将不会将它转换为字符变量。
data test;
infile cards dsd dlm=',' TRUNCOVER ;
length myfirstval 8 mydate 8 mythirdval 8;
input myfirstval mydate mythirdval;
format mydate date9.;
cards;
1,1234,5
2,.,6
;
请注意,数据步骤编译器将首次定义变量的类型。例如,如果第一个引用位于IF MYDATE='.' ...
之类的语句中,则MYDATE
将被定义为字符长度1,以匹配与其进行比较的值的类型。这就是为什么最好从LENGTH
或ATTRIB
语句开始,以清楚地定义变量。