2023-08-23 批量清除数据集格式

pluuus230713 / 2023-08-24 / 原文

编程时需要将数据库中的数据集清除全部变量的formatinformat,一个一个的处理过于麻烦了,所以今天找了些方法来实现批量处理。

🌟方法1:使用proc datasets

proc datasets lib=work memtype=data; /*lib=需要清除格式的数据集存储的数据库*/
	modify test1;/*modify一次修改一个数据集的属性*/
		attrib _all_ label=' ';
		attrib _all_ format=;
	modify test2;
        attrib _all_ format = ;
        attrib _all_ informat = ;
    ......
run;

🌟方法2:使用call execute
(1)对数据库中全部数据集清除格式

/*去除数据集格式*/
data _null_;
    set sashelp.vmember(where=(libname="TEST"));
    call execute(
        "data work."||dequote(memname)||"; set test."||dequote(memname)||
        "; format _all_; informat _all_; run;");
run;

(2)选择数据库中部分数据集清除格式

/*调用数据集*/
%let raw = %nrstr("test1" "test2" .....);/*将需要清除格式的数据集名称用双引号括起来,赋值给宏变量raw*/

/*去除数据集格式*/
data _null_;
    set sashelp.vmember(where=(libname="TEST" and memname in (&raw)));
    call execute(
        "data work."||dequote(memname)||"; set test."||dequote(memname)||
        "; format _all_; informat _all_; run;");
run;