我正在尝试编写一个简单读取SAS .sas7bdat数据文件并以文本格式输出的SAS脚本.我希望日期以YYYYMMDD格式输出.我不知道日期列的名称是什么.我的脚本目前是:
libname tmplib '~/testdatadir/';
OPTIONS MISSING='00'x;
data tmpdata;
set tmplib.testdatafile;
array flds{*} _NUMERIC_;
do i=1 to dim(flds);
if missing(flds(i)) then flds(i)=.;
end;
array charflds{*} _CHARACTER_;
do i=1 to dim(charflds);
if missing(charflds(i)) then charflds(i)=' ';
end;
drop i;
RUN;
PROC EXPORT
DATA = tmpdata
OUTFILE = 'testdataoutfile.txt'
DBMS = TAB REPLACE;
PUTNAME = YES;
RUN;
Run Code Online (Sandbox Code Playgroud)
我想要遍历所有日期字段(就像我使用NUMERIC字段和CHARACTER字段一样),或者为每个NUMERIC字段添加一个检查,测试它是否是日期(然后我可以更改格式),或添加一个选项PROC EXPORT表示输出日期格式.获取输出文件的日期格式为YYYYMMDD的任何其他方法也是可以接受的.
您可以使用该varfmt
函数查找数字变量的格式,这可以帮助您确定它是否为日期,即其格式是否为日期格式.从技术上讲,你可能有一个日期不是正确的日期格式,所以它只显示为16239或其他东西,但这些很难被发现,因为它也可能只是数字16,239.此方法将查找在数据浏览器中显示为日期的任何内容.
然后使用一些组合put
,并input
把它进入YYYYMMDD格式.
刚使用的一个问题put
是我认为默认它会返回一个字符变量,所以你需要创建一个新的字符变量来保存日期,或者将YYYYMMDD转换回一个8位数字,所以这个数字20120501而不是字符串20120501
.
对于例如2,你要注意,varfmt
返回给定数据集的名称和数量可变的变量的格式.在示例中,他们设置了一个单独的vars
表,其目的是遍历所有变量.
归档时间: |
|
查看次数: |
2159 次 |
最近记录: |