2013-08-05 44 views
1

我想将数据文件分解成小文件,其中一个变量作为这些文件名称的一部分。具体来说,我有一堆人口普查区,加上其他变数。我将它们读入矩阵,执行一些操作,现在想将数据导出循环并将其保存为外部数据文件,并将人口普查区作为名称的一部分;这有没有打破循环或退出IML因为我移动到下道做:从SAS PROC中的循环内部的变量生成文件名IML

read i = first census tract; 
append data from other matrix; 
save out file as "rld_'census_tract' value"; 
read next census tract; 
repeat; 

我试图symput功能,但它需要使用它打破了流动IML内部数据

回答

0

我不知道在IML(或者即使有)的解决方案,但我会建议一个不同的解决方案。

将所有矩阵写出到单个数据集中(或者将它们全部附加在一起,或者随着循环的进行追加到单个数据集中,以较容易的为准),并在该数据集中追加'census tract'作为一个变量。然后使用sas datastep将它们写出来,然后分开文件。如果你正在讨论写出单独的sas数据集,你可以使用条件逻辑或者你可以创建一个宏调用来做到这一点;如果您正在编写外部文件(例如CSV或文本文件),则可以使用文件名变量(file语句中的filevar选项)并将其写出。

这将是相当有效的(特别是对于外部文件方法)并且不需要留在IML中。

+0

嗨乔,非常感谢。不幸的是,由此产生的数据集太大,这就是为什么我试图事先分割它。 –

+0

太大了怎么办?你的意思是你不能适应磁盘?或者只是由于尺寸而导致处理速度缓慢? – Joe