SAS 逐行赋值给宏函数

拿到一组数据,csv文件开头为数字,比如000001.csv。

想把csv文件用代码批量导入到sas数据集中就有一点小的问题。

命名,sas数据集开头不能以数字开头。


第一,利用 x “dir  ....... >  ......\data_list.csv” 把文件目录下的所有文件导成了一个list,存在了csv文件中。

第二,经过筛选和处理,获取了一个叫list的sas数据集,里面第一列是文件名 如 000001.csv。第二列是用来给sas数据集命名的,设置成了csv000001。

编写了一个宏 import, 这个宏有两个参数,一个是file_name,一个是sas_name。

现在想的时候,根据file_name可以获取文件路径,然后保存成sas_name。

但是宏有两个参数,这个时候将list中的每行观测去跑宏就是一个比较少见的问题了。(尴尬,业务都要求用SAS,现在刚刚学)

解决方法:

DATA _NULL_;

SET  lib_name.list(obs=max);

call execute('%import('||sas_name||','||file_name||');');

run;

这个时候就是每读一条观测,观测中的sas_name和file_name的值就会放入import这个宏去跑。

猜你喜欢

转载自blog.csdn.net/aaronpaul/article/details/80705460
SAS